| rev | 
   line source | 
| 
bsw@519
 | 
     1 if (!jsFail) {
 | 
| 
bsw@519
 | 
     2   voting_text_approval_single               = "Approval"
 | 
| 
bsw@519
 | 
     3   voting_text_approval_multi                = "Approval"
 | 
| 
bsw@519
 | 
     4   voting_text_first_preference_single       = "Approval (first preference)"
 | 
| 
bsw@519
 | 
     5   voting_text_first_preference_multi        = "Approval (first preference)"
 | 
| 
bsw@519
 | 
     6   voting_text_second_preference_single      = "Approval (second preference)"
 | 
| 
bsw@519
 | 
     7   voting_text_second_preference_multi       = "Approval (second preference)"
 | 
| 
bsw@519
 | 
     8   voting_text_third_preference_single       = "Approval (third preference)"
 | 
| 
bsw@519
 | 
     9   voting_text_third_preference_multi        = "Approval (third preference)"
 | 
| 
bsw@519
 | 
    10   voting_text_numeric_preference_single     = "Approval (#th preference)"
 | 
| 
bsw@519
 | 
    11   voting_text_numeric_preference_multi      = "Approval (#th preference)"
 | 
| 
bsw@519
 | 
    12   voting_text_abstention_single             = "Abstention"
 | 
| 
bsw@519
 | 
    13   voting_text_abstention_multi              = "Abstention"
 | 
| 
bsw@519
 | 
    14   voting_text_disapproval_above_one_single  = "Disapproval (prefer to lower block)"
 | 
| 
bsw@519
 | 
    15   voting_text_disapproval_above_one_multi   = "Disapproval (prefer to lower block)"
 | 
| 
bsw@519
 | 
    16   voting_text_disapproval_above_many_single = "Disapproval (prefer to lower blocks)"
 | 
| 
bsw@519
 | 
    17   voting_text_disapproval_above_many_multi  = "Disapproval (prefer to lower blocks)"
 | 
| 
bsw@519
 | 
    18   voting_text_disapproval_above_last_single = "Disapproval (prefer to last block)"
 | 
| 
bsw@519
 | 
    19   voting_text_disapproval_above_last_multi  = "Disapproval (prefer to last block)"
 | 
| 
bsw@519
 | 
    20   voting_text_disapproval_single            = "Disapproval"
 | 
| 
bsw@519
 | 
    21   voting_text_disapproval_multi             = "Disapproval"
 | 
| 
bsw/jbe@19
 | 
    22 
 | 
| 
bsw@519
 | 
    23   function voting_setCategoryHeadings() {
 | 
| 
bsw@519
 | 
    24     var approvalCount = 0;
 | 
| 
bsw@519
 | 
    25     var disapprovalCount = 0;
 | 
| 
bsw@519
 | 
    26     var sections = document.getElementById("voting").childNodes;
 | 
| 
bsw@519
 | 
    27     for (var i=0; i<sections.length; i++) {
 | 
| 
bsw@519
 | 
    28       var section = sections[i];
 | 
| 
bsw@519
 | 
    29       if (section.className == "approval")       approvalCount++;
 | 
| 
bsw@519
 | 
    30       if (section.className == "disapproval") disapprovalCount++;
 | 
| 
bsw/jbe@5
 | 
    31     }
 | 
| 
bsw@519
 | 
    32     var approvalIndex = 0;
 | 
| 
bsw@519
 | 
    33     var disapprovalIndex = 0;
 | 
| 
bsw/jbe@5
 | 
    34     for (var i=0; i<sections.length; i++) {
 | 
| 
bsw/jbe@5
 | 
    35       var section = sections[i];
 | 
| 
bsw/jbe@5
 | 
    36       if (
 | 
| 
bsw/jbe@5
 | 
    37         section.className == "approval" ||
 | 
| 
bsw/jbe@5
 | 
    38         section.className == "abstention" ||
 | 
| 
bsw/jbe@5
 | 
    39         section.className == "disapproval"
 | 
| 
bsw/jbe@5
 | 
    40       ) {
 | 
| 
bsw@519
 | 
    41         var setHeading = function(heading) {
 | 
| 
bsw@519
 | 
    42           var headingNodes = section.childNodes;
 | 
| 
bsw@519
 | 
    43           for (var j=0; j<headingNodes.length; j++) {
 | 
| 
bsw@519
 | 
    44             var headingNode = headingNodes[j];
 | 
| 
bsw@519
 | 
    45             if (headingNode.className == "cathead") {
 | 
| 
bsw@519
 | 
    46               headingNode.textContent = heading;
 | 
| 
bsw/jbe@19
 | 
    47             }
 | 
| 
bsw/jbe@5
 | 
    48           }
 | 
| 
bsw@519
 | 
    49         }
 | 
| 
bsw@519
 | 
    50         var count = 0;
 | 
| 
bsw@519
 | 
    51         var entries = section.childNodes;
 | 
| 
bsw@519
 | 
    52         for (var j=0; j<entries.length; j++) {
 | 
| 
bsw@519
 | 
    53           var entry = entries[j];
 | 
| 
bsw@519
 | 
    54           if (entry.className == "movable") count++;
 | 
| 
bsw@519
 | 
    55         }
 | 
| 
bsw@519
 | 
    56         if (section.className == "approval") {
 | 
| 
bsw@519
 | 
    57           if (approvalCount > 1) {
 | 
| 
bsw@519
 | 
    58             if (approvalIndex == 0) {
 | 
| 
bsw@519
 | 
    59               if (count == 1) setHeading(voting_text_first_preference_single);
 | 
| 
bsw@519
 | 
    60               else setHeading(voting_text_first_preference_multi);
 | 
| 
bsw@519
 | 
    61             } else if (approvalIndex == 1) {
 | 
| 
bsw@519
 | 
    62               if (count == 1) setHeading(voting_text_second_preference_single);
 | 
| 
bsw@519
 | 
    63               else setHeading(voting_text_second_preference_multi);
 | 
| 
bsw@519
 | 
    64             } else if (approvalIndex == 2) {
 | 
| 
bsw@519
 | 
    65               if (count == 1) setHeading(voting_text_third_preference_single);
 | 
| 
bsw@519
 | 
    66               else setHeading(voting_text_third_preference_multi);
 | 
| 
bsw@519
 | 
    67             } else {
 | 
| 
bsw@519
 | 
    68               var text;
 | 
| 
bsw@519
 | 
    69               if (count == 1) text = voting_text_numeric_preference_single;
 | 
| 
bsw@519
 | 
    70               else text = voting_text_numeric_preference_multi;
 | 
| 
bsw@519
 | 
    71               text = text.replace(/#/, "" + (approvalIndex + 1))
 | 
| 
bsw@519
 | 
    72               setHeading(text);
 | 
| 
bsw@519
 | 
    73             }
 | 
| 
bsw@519
 | 
    74           } else {
 | 
| 
bsw@519
 | 
    75             if (count == 1) setHeading(voting_text_approval_single);
 | 
| 
bsw@519
 | 
    76             else setHeading(voting_text_approval_multi);
 | 
| 
bsw/jbe@19
 | 
    77           }
 | 
| 
bsw@519
 | 
    78           approvalIndex++;
 | 
| 
bsw@519
 | 
    79         } else if (section.className == "abstention") {
 | 
| 
bsw@519
 | 
    80           if (count == 1) setHeading(voting_text_abstention_single);
 | 
| 
bsw@519
 | 
    81           else setHeading(voting_text_abstention_multi);
 | 
| 
bsw@519
 | 
    82         } else if (section.className == "disapproval") {
 | 
| 
bsw@519
 | 
    83           if (disapprovalCount > disapprovalIndex + 2) {
 | 
| 
bsw@519
 | 
    84             if (count == 1) setHeading(voting_text_disapproval_above_many_single);
 | 
| 
bsw@519
 | 
    85             else setHeading(voting_text_disapproval_above_many_multi);
 | 
| 
bsw@519
 | 
    86           } else if (disapprovalCount == 2 && disapprovalIndex == 0) {
 | 
| 
bsw@519
 | 
    87             if (count == 1) setHeading(voting_text_disapproval_above_one_single);
 | 
| 
bsw@519
 | 
    88             else setHeading(voting_text_disapproval_above_one_multi);
 | 
| 
bsw@519
 | 
    89           } else if (disapprovalIndex == disapprovalCount - 2) {
 | 
| 
bsw@519
 | 
    90             if (count == 1) setHeading(voting_text_disapproval_above_last_single);
 | 
| 
bsw@519
 | 
    91             else setHeading(voting_text_disapproval_above_last_multi);
 | 
| 
bsw@519
 | 
    92           } else {
 | 
| 
bsw@519
 | 
    93             if (count == 1) setHeading(voting_text_disapproval_single);
 | 
| 
bsw@519
 | 
    94             else setHeading(voting_text_disapproval_multi);
 | 
| 
bsw@519
 | 
    95           }
 | 
| 
bsw@519
 | 
    96           disapprovalIndex++;
 | 
| 
bsw/jbe@5
 | 
    97         }
 | 
| 
bsw/jbe@5
 | 
    98       }
 | 
| 
bsw/jbe@5
 | 
    99     }
 | 
| 
bsw@519
 | 
   100   }
 | 
| 
bsw@519
 | 
   101   function voting_move(element, up, dropX, dropY) {
 | 
| 
bsw@519
 | 
   102     if (typeof(element) == "string") element = document.getElementById(element);
 | 
| 
bsw@519
 | 
   103     var mouse = (up == null);
 | 
| 
bsw@519
 | 
   104     var oldParent = element.parentNode;
 | 
| 
bsw@519
 | 
   105     if (mouse) var centerY = dropY + element.clientHeight / 2;
 | 
| 
bsw@519
 | 
   106     var approvalCount = 0;
 | 
| 
bsw@519
 | 
   107     var disapprovalCount = 0;
 | 
| 
bsw@519
 | 
   108     var mainDiv = document.getElementById("voting");
 | 
| 
bsw@519
 | 
   109     var sections = mainDiv.childNodes;
 | 
| 
bsw@519
 | 
   110     for (var i=0; i<sections.length; i++) {
 | 
| 
bsw@519
 | 
   111       var section = sections[i];
 | 
| 
bsw@519
 | 
   112       if (section.className == "approval")       approvalCount++;
 | 
| 
bsw@519
 | 
   113       if (section.className == "disapproval") disapprovalCount++;
 | 
| 
bsw@519
 | 
   114     }
 | 
| 
bsw@519
 | 
   115     if (mouse) {
 | 
| 
bsw/jbe@19
 | 
   116       for (var i=0; i<sections.length; i++) {
 | 
| 
bsw/jbe@19
 | 
   117         var section = sections[i];
 | 
| 
bsw/jbe@19
 | 
   118         if (
 | 
| 
bsw/jbe@19
 | 
   119           section.className == "approval" ||
 | 
| 
bsw/jbe@19
 | 
   120           section.className == "abstention" ||
 | 
| 
bsw/jbe@19
 | 
   121           section.className == "disapproval"
 | 
| 
bsw/jbe@19
 | 
   122         ) {
 | 
| 
bsw@519
 | 
   123           if (
 | 
| 
bsw@519
 | 
   124             centerY >= section.offsetTop &&
 | 
| 
bsw@519
 | 
   125             centerY <  section.offsetTop + section.clientHeight
 | 
| 
bsw@519
 | 
   126           ) {
 | 
| 
bsw@519
 | 
   127             var entries = section.childNodes;
 | 
| 
bsw@519
 | 
   128             for (var j=0; j<entries.length; j++) {
 | 
| 
bsw@519
 | 
   129               var entry = entries[j];
 | 
| 
bsw@519
 | 
   130               if (entry.className == "movable") {
 | 
| 
bsw@519
 | 
   131                 if (centerY < entry.offsetTop + entry.clientHeight / 2) {
 | 
| 
bsw@519
 | 
   132                   if (element != entry) {
 | 
| 
bsw@519
 | 
   133                     oldParent.removeChild(element);
 | 
| 
bsw@519
 | 
   134                     section.insertBefore(element, entry);
 | 
| 
bsw@519
 | 
   135                   }
 | 
| 
bsw@519
 | 
   136                   break;
 | 
| 
bsw@519
 | 
   137                 }
 | 
| 
bsw@519
 | 
   138               }
 | 
| 
bsw/jbe@19
 | 
   139             }
 | 
| 
bsw@519
 | 
   140             if (j == entries.length) {
 | 
| 
bsw@519
 | 
   141               oldParent.removeChild(element);
 | 
| 
bsw@519
 | 
   142               section.appendChild(element);
 | 
| 
bsw@519
 | 
   143             }
 | 
| 
bsw/jbe@19
 | 
   144             break;
 | 
| 
bsw/jbe@19
 | 
   145           }
 | 
| 
bsw/jbe@19
 | 
   146         }
 | 
| 
bsw/jbe@19
 | 
   147       }
 | 
| 
bsw/jbe@19
 | 
   148       if (i == sections.length) {
 | 
| 
bsw@519
 | 
   149         var newSection = document.createElement("div");
 | 
| 
bsw@519
 | 
   150         var cathead = document.createElement("div");
 | 
| 
bsw@519
 | 
   151         cathead.setAttribute("class", "cathead");
 | 
| 
bsw@519
 | 
   152         newSection.appendChild(cathead);
 | 
| 
bsw@519
 | 
   153         for (var i=0; i<sections.length; i++) {
 | 
| 
bsw@519
 | 
   154           var section = sections[i];
 | 
| 
bsw@519
 | 
   155           if (
 | 
| 
bsw@519
 | 
   156             section.className == "approval" ||
 | 
| 
bsw@519
 | 
   157             section.className == "abstention" ||
 | 
| 
bsw@519
 | 
   158             section.className == "disapproval"
 | 
| 
bsw@519
 | 
   159           ) {
 | 
| 
bsw@519
 | 
   160             if (centerY < section.offsetTop + section.clientHeight / 2) {
 | 
| 
bsw@519
 | 
   161               if (section.className == "disapproval") {
 | 
| 
bsw@519
 | 
   162                 newSection.setAttribute("class", "disapproval");
 | 
| 
bsw@519
 | 
   163                 disapprovalCount++;
 | 
| 
bsw@519
 | 
   164               } else {
 | 
| 
bsw@519
 | 
   165                 newSection.setAttribute("class", "approval");
 | 
| 
bsw@519
 | 
   166                 approvalCount++;
 | 
| 
bsw@519
 | 
   167               }
 | 
| 
bsw@519
 | 
   168               mainDiv.insertBefore(newSection, section);
 | 
| 
bsw@519
 | 
   169               break;
 | 
| 
bsw@519
 | 
   170             }
 | 
| 
bsw@519
 | 
   171           }
 | 
| 
bsw@519
 | 
   172         }
 | 
| 
bsw@519
 | 
   173         if (i == sections.length) {
 | 
| 
bsw@519
 | 
   174           newSection.setAttribute("class", "disapproval");
 | 
| 
bsw@519
 | 
   175           disapprovalCount++;
 | 
| 
bsw@519
 | 
   176           mainDiv.appendChild(newSection);
 | 
| 
bsw@519
 | 
   177         }
 | 
| 
bsw@519
 | 
   178         oldParent.removeChild(element);
 | 
| 
bsw@519
 | 
   179         newSection.appendChild(element);
 | 
| 
bsw/jbe@19
 | 
   180       }
 | 
| 
bsw@519
 | 
   181     } else {
 | 
| 
bsw@519
 | 
   182       var oldFound = false;
 | 
| 
bsw@519
 | 
   183       var prevSection = null;
 | 
| 
bsw@519
 | 
   184       var nextSection = null;
 | 
| 
bsw@519
 | 
   185       for (var i=0; i<sections.length; i++) {
 | 
| 
bsw@519
 | 
   186         var section = sections[i];
 | 
| 
bsw@519
 | 
   187         if (
 | 
| 
bsw@519
 | 
   188           section.className == "approval" ||
 | 
| 
bsw@519
 | 
   189           section.className == "abstention" ||
 | 
| 
bsw@519
 | 
   190           section.className == "disapproval"
 | 
| 
bsw@519
 | 
   191         ) {
 | 
| 
bsw@519
 | 
   192           if (oldFound) {
 | 
| 
bsw@519
 | 
   193             nextSection = section;
 | 
| 
bsw@519
 | 
   194             break;
 | 
| 
bsw@519
 | 
   195           } else if (section == oldParent) {
 | 
| 
bsw@519
 | 
   196             oldFound = true;
 | 
| 
bsw@519
 | 
   197           } else {
 | 
| 
bsw@519
 | 
   198             prevSection = section;
 | 
| 
bsw@519
 | 
   199           }
 | 
| 
bsw/jbe@19
 | 
   200         }
 | 
| 
bsw/jbe@19
 | 
   201       }
 | 
| 
bsw@519
 | 
   202       var create;
 | 
| 
bsw@519
 | 
   203       if (oldParent.className == "abstention") {
 | 
| 
bsw@519
 | 
   204         create = true;
 | 
| 
bsw@519
 | 
   205       } else {
 | 
| 
bsw@519
 | 
   206         create = false;
 | 
| 
bsw@519
 | 
   207         for (var i=0; i<oldParent.childNodes.length; i++) {
 | 
| 
bsw@519
 | 
   208           var entry = oldParent.childNodes[i];
 | 
| 
bsw@519
 | 
   209           if (entry.className == "movable") {
 | 
| 
bsw@519
 | 
   210             if (entry != element) {
 | 
| 
bsw@519
 | 
   211               create = true;
 | 
| 
bsw@519
 | 
   212               break;
 | 
| 
bsw@519
 | 
   213             }
 | 
| 
bsw/jbe@19
 | 
   214           }
 | 
| 
bsw/jbe@19
 | 
   215         }
 | 
| 
bsw/jbe@19
 | 
   216       }
 | 
| 
bsw@519
 | 
   217       var newSection;
 | 
| 
bsw@519
 | 
   218       if (create) {
 | 
| 
bsw@519
 | 
   219         newSection = document.createElement("div");
 | 
| 
bsw@519
 | 
   220         var cathead = document.createElement("div");
 | 
| 
bsw@519
 | 
   221         cathead.setAttribute("class", "cathead");
 | 
| 
bsw@519
 | 
   222         newSection.appendChild(cathead);
 | 
| 
bsw@519
 | 
   223         if (
 | 
| 
bsw@519
 | 
   224           oldParent.className == "approval" ||
 | 
| 
bsw@519
 | 
   225           (oldParent.className == "abstention" && up)
 | 
| 
bsw@519
 | 
   226         ) {
 | 
| 
bsw@519
 | 
   227           newSection.setAttribute("class", "approval");
 | 
| 
bsw@519
 | 
   228           approvalCount++;
 | 
| 
bsw@519
 | 
   229         } else {
 | 
| 
bsw@519
 | 
   230           newSection.setAttribute("class", "disapproval");
 | 
| 
bsw@519
 | 
   231           disapprovalCount++;
 | 
| 
bsw@519
 | 
   232         }
 | 
| 
bsw@519
 | 
   233         if (up) {
 | 
| 
bsw@519
 | 
   234           mainDiv.insertBefore(newSection, oldParent);
 | 
| 
bsw@519
 | 
   235         } else {
 | 
| 
bsw@519
 | 
   236           if (nextSection) mainDiv.insertBefore(newSection, nextSection);
 | 
| 
bsw@519
 | 
   237           else mainDiv.appendChild(newSection);
 | 
| 
bsw@519
 | 
   238         }
 | 
| 
bsw@519
 | 
   239       } else {
 | 
| 
bsw@519
 | 
   240         if (up) newSection = prevSection;
 | 
| 
bsw@519
 | 
   241         else newSection = nextSection;
 | 
| 
bsw@519
 | 
   242       }
 | 
| 
bsw@519
 | 
   243       if (newSection) {
 | 
| 
bsw@519
 | 
   244         oldParent.removeChild(element);
 | 
| 
bsw@519
 | 
   245         if (create || up) {
 | 
| 
bsw@519
 | 
   246           newSection.appendChild(element);
 | 
| 
bsw@519
 | 
   247         } else {
 | 
| 
bsw@519
 | 
   248           var inserted = false;
 | 
| 
bsw@519
 | 
   249           for (var i=0; i<newSection.childNodes.length; i++) {
 | 
| 
bsw@519
 | 
   250             var entry = newSection.childNodes[i];
 | 
| 
bsw@519
 | 
   251             if (entry.className == "movable") {
 | 
| 
bsw@519
 | 
   252               newSection.insertBefore(element, entry);
 | 
| 
bsw@519
 | 
   253               inserted = true;
 | 
| 
bsw@519
 | 
   254               break;
 | 
| 
bsw@519
 | 
   255             }
 | 
| 
bsw@519
 | 
   256           }
 | 
| 
bsw@519
 | 
   257           if (!inserted) newSection.appendChild(element);
 | 
| 
bsw@519
 | 
   258         }
 | 
| 
bsw@519
 | 
   259       }
 | 
| 
bsw/jbe@19
 | 
   260     }
 | 
| 
bsw@519
 | 
   261     // sections = mainDiv.childNodes;
 | 
| 
bsw@519
 | 
   262     for (i=0; i<sections.length; i++) {
 | 
| 
bsw@519
 | 
   263       var section = sections[i];
 | 
| 
bsw/jbe@19
 | 
   264       if (
 | 
| 
bsw@519
 | 
   265         (section.className == "approval"    &&    approvalCount > 1) ||
 | 
| 
bsw@519
 | 
   266         (section.className == "disapproval" && disapprovalCount > 1)
 | 
| 
bsw/jbe@19
 | 
   267       ) {
 | 
| 
bsw@519
 | 
   268         var entries = section.childNodes;
 | 
| 
bsw@519
 | 
   269         for (var j=0; j<entries.length; j++) {
 | 
| 
bsw@519
 | 
   270           var entry = entries[j];
 | 
| 
bsw@519
 | 
   271           if (entry.className == "movable") break;
 | 
| 
bsw/jbe@19
 | 
   272         }
 | 
| 
bsw@519
 | 
   273         if (j == entries.length) {
 | 
| 
bsw@519
 | 
   274           section.parentNode.removeChild(section);
 | 
| 
bsw@519
 | 
   275         }
 | 
| 
bsw/jbe@19
 | 
   276       }
 | 
| 
bsw/jbe@19
 | 
   277     }
 | 
| 
bsw@519
 | 
   278     voting_setCategoryHeadings();
 | 
| 
bsw/jbe@5
 | 
   279   }
 | 
| 
bsw@519
 | 
   280   function elementDropped(element, dropX, dropY) {
 | 
| 
bsw@519
 | 
   281     voting_move(element, null, dropX, dropY);
 | 
| 
bsw/jbe@5
 | 
   282   }
 | 
| 
bsw@519
 | 
   283   window.addEventListener("load", function(event) {
 | 
| 
bsw@519
 | 
   284     voting_setCategoryHeadings();
 | 
| 
bsw@519
 | 
   285     var mainDiv = document.getElementById("voting");
 | 
| 
bsw@519
 | 
   286     var form = document.getElementById("voting_form");
 | 
| 
bsw@519
 | 
   287     var elements = document.getElementsByTagName("input");
 | 
| 
bsw@519
 | 
   288     for (var i=0; i<elements.length; i++) {
 | 
| 
bsw@519
 | 
   289       var element = elements[i];
 | 
| 
bsw@519
 | 
   290       if (element.className == "voting_done") {
 | 
| 
bsw@519
 | 
   291         element.addEventListener("click", function(event) {
 | 
| 
bsw@519
 | 
   292           var scoringString = "";
 | 
| 
bsw@519
 | 
   293           var approvalCount = 0;
 | 
| 
bsw@519
 | 
   294           var disapprovalCount = 0;
 | 
| 
bsw@519
 | 
   295           var sections = mainDiv.childNodes;
 | 
| 
bsw@519
 | 
   296           for (var j=0; j<sections.length; j++) {
 | 
| 
bsw@519
 | 
   297             var section = sections[j];
 | 
| 
bsw@519
 | 
   298             if (section.className == "approval")       approvalCount++;
 | 
| 
bsw@519
 | 
   299             if (section.className == "disapproval") disapprovalCount++;
 | 
| 
bsw@519
 | 
   300           }
 | 
| 
bsw@519
 | 
   301           var approvalIndex = 0;
 | 
| 
bsw@519
 | 
   302           var disapprovalIndex = 0;
 | 
| 
bsw@519
 | 
   303           for (var j=0; j<sections.length; j++) {
 | 
| 
bsw@519
 | 
   304             var section = sections[j];
 | 
| 
bsw@519
 | 
   305             if (
 | 
| 
bsw@519
 | 
   306               section.className == "approval"    ||
 | 
| 
bsw@519
 | 
   307               section.className == "abstention"  ||
 | 
| 
bsw@519
 | 
   308               section.className == "disapproval"
 | 
| 
bsw@519
 | 
   309             ) {
 | 
| 
bsw@519
 | 
   310               var score;
 | 
| 
bsw@519
 | 
   311               if (section.className == "approval") {
 | 
| 
bsw@519
 | 
   312                 score = approvalCount - approvalIndex;
 | 
| 
bsw@519
 | 
   313                 approvalIndex++;
 | 
| 
bsw@519
 | 
   314               } else if (section.className == "abstention") {
 | 
| 
bsw@519
 | 
   315                 score = 0;
 | 
| 
bsw@519
 | 
   316               } else if (section.className == "disapproval") {
 | 
| 
bsw@519
 | 
   317                 score = -1 - disapprovalIndex;
 | 
| 
bsw@519
 | 
   318                 disapprovalIndex++;
 | 
| 
bsw@519
 | 
   319               }
 | 
| 
bsw@519
 | 
   320               var entries = section.childNodes;
 | 
| 
bsw@519
 | 
   321               for (var k=0; k<entries.length; k++) {
 | 
| 
bsw@519
 | 
   322                 var entry = entries[k];
 | 
| 
bsw@519
 | 
   323                 if (entry.className == "movable") {
 | 
| 
bsw@519
 | 
   324                   var id = entry.id.match(/[0-9]+/);
 | 
| 
bsw@519
 | 
   325                   var field = document.createElement("input");
 | 
| 
bsw@519
 | 
   326                   scoringString += id + ":" + score + ";";
 | 
| 
bsw@519
 | 
   327                 }
 | 
| 
bsw/jbe@5
 | 
   328               }
 | 
| 
bsw/jbe@5
 | 
   329             }
 | 
| 
bsw/jbe@5
 | 
   330           }
 | 
| 
bsw@519
 | 
   331           var fields = form.childNodes;
 | 
| 
bsw@519
 | 
   332           for (var j=0; j<fields.length; j++) {
 | 
| 
bsw@519
 | 
   333             var field = fields[j];
 | 
| 
bsw@519
 | 
   334             if (field.name == "scoring") {
 | 
| 
bsw@519
 | 
   335               field.setAttribute("value", scoringString);
 | 
| 
bsw@519
 | 
   336               form.submit();
 | 
| 
bsw@519
 | 
   337               return;
 | 
| 
bsw@519
 | 
   338             }
 | 
| 
bsw/jbe@5
 | 
   339           }
 | 
| 
bsw@519
 | 
   340           alert('Hidden input field named "scoring" not found.');
 | 
| 
bsw@519
 | 
   341         }, false);
 | 
| 
bsw@519
 | 
   342       }
 | 
| 
bsw/jbe@5
 | 
   343     }
 | 
| 
bsw@519
 | 
   344   }, false);
 | 
| 
bsw@519
 | 
   345   function voting_moveUp(element) {
 | 
| 
bsw@519
 | 
   346     return voting_move(element, true);
 | 
| 
bsw/jbe@5
 | 
   347   }
 | 
| 
bsw@519
 | 
   348   function voting_moveDown(element) {
 | 
| 
bsw@519
 | 
   349     return voting_move(element, false);
 | 
| 
bsw@519
 | 
   350   }
 | 
| 
bsw@519
 | 
   351 
 | 
| 
bsw@519
 | 
   352   
 | 
| 
bsw@519
 | 
   353 } |