jbe@945: jsProtect(function() { bsw@519: voting_text_approval_single = "Approval" bsw@519: voting_text_approval_multi = "Approval" bsw@519: voting_text_first_preference_single = "Approval (first preference)" bsw@519: voting_text_first_preference_multi = "Approval (first preference)" bsw@519: voting_text_second_preference_single = "Approval (second preference)" bsw@519: voting_text_second_preference_multi = "Approval (second preference)" bsw@519: voting_text_third_preference_single = "Approval (third preference)" bsw@519: voting_text_third_preference_multi = "Approval (third preference)" bsw@519: voting_text_numeric_preference_single = "Approval (#th preference)" bsw@519: voting_text_numeric_preference_multi = "Approval (#th preference)" bsw@519: voting_text_abstention_single = "Abstention" bsw@519: voting_text_abstention_multi = "Abstention" bsw@519: voting_text_disapproval_above_one_single = "Disapproval (prefer to lower block)" bsw@519: voting_text_disapproval_above_one_multi = "Disapproval (prefer to lower block)" bsw@519: voting_text_disapproval_above_many_single = "Disapproval (prefer to lower blocks)" bsw@519: voting_text_disapproval_above_many_multi = "Disapproval (prefer to lower blocks)" bsw@519: voting_text_disapproval_above_last_single = "Disapproval (prefer to last block)" bsw@519: voting_text_disapproval_above_last_multi = "Disapproval (prefer to last block)" bsw@519: voting_text_disapproval_single = "Disapproval" bsw@519: voting_text_disapproval_multi = "Disapproval" bsw/jbe@19: bsw@519: function voting_setCategoryHeadings() { bsw@519: var approvalCount = 0; bsw@519: var disapprovalCount = 0; bsw@519: var sections = document.getElementById("voting").childNodes; bsw@519: for (var i=0; i 1) { bsw@519: if (approvalIndex == 0) { bsw@519: if (count == 1) setHeading(voting_text_first_preference_single); bsw@519: else setHeading(voting_text_first_preference_multi); bsw@519: } else if (approvalIndex == 1) { bsw@519: if (count == 1) setHeading(voting_text_second_preference_single); bsw@519: else setHeading(voting_text_second_preference_multi); bsw@519: } else if (approvalIndex == 2) { bsw@519: if (count == 1) setHeading(voting_text_third_preference_single); bsw@519: else setHeading(voting_text_third_preference_multi); bsw@519: } else { bsw@519: var text; bsw@519: if (count == 1) text = voting_text_numeric_preference_single; bsw@519: else text = voting_text_numeric_preference_multi; bsw@519: text = text.replace(/#/, "" + (approvalIndex + 1)) bsw@519: setHeading(text); bsw@519: } bsw@519: } else { bsw@519: if (count == 1) setHeading(voting_text_approval_single); bsw@519: else setHeading(voting_text_approval_multi); bsw/jbe@19: } bsw@519: approvalIndex++; bsw@519: } else if (section.className == "abstention") { bsw@519: if (count == 1) setHeading(voting_text_abstention_single); bsw@519: else setHeading(voting_text_abstention_multi); bsw@519: } else if (section.className == "disapproval") { bsw@519: if (disapprovalCount > disapprovalIndex + 2) { bsw@519: if (count == 1) setHeading(voting_text_disapproval_above_many_single); bsw@519: else setHeading(voting_text_disapproval_above_many_multi); bsw@519: } else if (disapprovalCount == 2 && disapprovalIndex == 0) { bsw@519: if (count == 1) setHeading(voting_text_disapproval_above_one_single); bsw@519: else setHeading(voting_text_disapproval_above_one_multi); bsw@519: } else if (disapprovalIndex == disapprovalCount - 2) { bsw@519: if (count == 1) setHeading(voting_text_disapproval_above_last_single); bsw@519: else setHeading(voting_text_disapproval_above_last_multi); bsw@519: } else { bsw@519: if (count == 1) setHeading(voting_text_disapproval_single); bsw@519: else setHeading(voting_text_disapproval_multi); bsw@519: } bsw@519: disapprovalIndex++; bsw/jbe@5: } bsw/jbe@5: } bsw/jbe@5: } bsw@519: } bsw@519: function voting_move(element, up, dropX, dropY) { jbe@945: jsProtect(function() { jbe@945: if (typeof(element) == "string") element = document.getElementById(element); jbe@945: var mouse = (up == null); jbe@945: var oldParent = element.parentNode; jbe@945: if (mouse) var centerY = dropY + element.clientHeight / 2; jbe@945: var approvalCount = 0; jbe@945: var disapprovalCount = 0; jbe@945: var mainDiv = document.getElementById("voting"); jbe@945: var sections = mainDiv.childNodes; bsw/jbe@19: for (var i=0; i= section.offsetTop && jbe@945: centerY < section.offsetTop + section.clientHeight jbe@945: ) { jbe@945: var entries = section.childNodes; jbe@945: for (var j=0; j 1) || jbe@945: (section.className == "disapproval" && disapprovalCount > 1) bsw@519: ) { jbe@945: var entries = section.childNodes; jbe@945: for (var j=0; j