משתמש:Yonidebest/monobook.js/checkpercentage.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
// הקוד בודק אחוזי תמיכה בהצבעות. יש לסמן 2 תיבות סימון ואז לחיצה על תיבת סימון כלשהי תבדוק את אחוז התמיכה של שתי הרשימות.
// writen by [[user:Yonidebest]]
//
function checkVotingStatus() {
var inputs = document.getElementById('bodyContent').getElementsByTagName('INPUT');
var ols = document.getElementById('bodyContent').getElementsByTagName('OL');
var firstCatch = true;
var firstOL;
var secondOL;
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].getAttribute('name') != 'VoteOption' || !inputs[i].checked) continue;
if (firstCatch) {
firstOL = ols[Number(inputs[i].getAttribute('value'))];
firstCatch = false;
} else {
secondOL = ols[Number(inputs[i].getAttribute('value'))];
break;
}
}
if (firstOL && secondOL) {
var li1Length = firstOL.getElementsByTagName('LI').length;
var li2Length = secondOL.getElementsByTagName('LI').length;
var precent1 = ( (li1Length / (li1Length + li2Length))*100 ).toFixed(2);
var percent2 = ( (li2Length / (li1Length + li2Length))*100 ).toFixed(2);
var results = "רשימה ";
if (precent1 < 60)
results += "ראשונה זקוקה ל-" + Math.ceil( 0.60/0.40 * li2Length - li1Length) + " קולות נוספים כדי להגיע ל-60% תמיכה.\n";
else
results += "שנייה זקוקה ל-" + Math.ceil( 0.40/0.60 * li1Length - li2Length) + " קולות נוספים כדי להגיע ל-40% תמיכה.\n";
results += "רשימה ";
if (precent1 < 55)
results += "ראשונה זקוקה ל-" + Math.ceil( 0.55/0.45 * li2Length - li1Length) + " קולות נוספים כדי להגיע ל-55% תמיכה.\n";
else
results += "שנייה זקוקה ל-" + Math.ceil( 0.45/0.55 * li1Length - li2Length) + " קולות נוספים כדי להגיע ל-45% תמיכה.\n";
results += "רשימה ";
if (precent1 < 50)
results += "ראשונה זקוקה ל-" + (li2Length - li1Length + 1);
else
results += "שנייה זקוקה ל-" + (li1Length - li2Length + 1);
results += " קולות נוספים כדי להגיע ל-50% תמיכה.\n";
alert('אחוז תמיכה רשימה ראשונה: ' + precent1 + '%\nאחוז תמיכה רשימה שנייה: ' + + percent2 + '%\n' + results);
} else alert('הייתה בעיה. האם סימנת שתי תיבות סימון?');
}
function addCheckVotingStatus() {
if (wgPageName.indexOf('ויקיפדיה:פרלמנט') != 0 &&
wgPageName.indexOf('ויקיפדיה:רשימת_מועמדים_למחיקה/') != 0 &&
wgPageName.indexOf('ויקיפדיה:רשימת_ערכים_במחלוקת/') != 0) return;
var ols = document.getElementById('bodyContent').getElementsByTagName('OL');
if (!ols) return;
for (var i = 0; i < ols.length; i++) {
var checkbox = document.createElement('INPUT');
checkbox.type = "checkbox";
checkbox.name = "VoteOption";
checkbox.value = i;
checkbox.oncontextmenu = function(){checkVotingStatus();return false;}
ols[i].parentNode.insertBefore(checkbox, ols[i]);
ols[i].parentNode.insertBefore(document.createTextNode('השווה רשימה זו'), ols[i]);
ols[i].parentNode.insertBefore(document.createElement('BR'), ols[i]);
}
}
$(addCheckVotingStatus);