משתמש: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);