20. 9. 2018

Vyzkoušejte si hlasování v simulátoru volebního lístku

Simulátor hlasovacího lístku – komunální volby #listek, #vysledky {font-family: arial, helvetica, sans-serif;} /*#listek {font-size: small;}*/ td {vertical-align: top; padding: 4px;} table {border-collapse: collapse; border: 1px solid black;} td {border-left: 1px solid black; border-right: 1px solid black;} #listek h2 {text-align: center; margin-top: 0px; margin-bottom: 0px; font-size: small; font-weight: normal;} #listek p {margin: 0px;} /* upravit podle poctu stran */ /* #listek td {font-size: 12px;} */ /* div#listek {width: 1200px;}*/ div {margin-top: 1em;} div#patka {border-top: 1px dotted gray;} div#listek {border: 1px solid gray; padding: 1em; background-color: #eeeeee;} div#vysledky {min-height: 12em;} input {vertical-align: middle;} label {display: block; text-indent: -1em; padding-left: 1em; margin: 0px;} label input {height: 1.5em; width: 1.5em;} label.strana input {height: 2em; width: 2em;} label.strana span {font-weight: bold;} u {cursor: pointer;} .dostalHlas {background-color: yellow;} .neplatnyListek{background-color: #ffcccc;} tr.skryte {display: none;} tr.odkryte {display: table-row;} .celkem {} // funkce pro kopírování podobných polí function kopirovatPole(zdroj) { var novePole = new Array(); for (var i in zdroj){ if (typeof zdroj[i] == „object“) novePole[i] = kopirovatPole(zdroj[i]); // rekurze else novePole[i] = zdroj[i]; } return novePole; } // generovane promenne // var mandatu = 7; var mandatu = 65 // nejdůležitější pole, kterým se řídí celá aplikace. Kandidát, který tu nebude, bude ignorován // poleKandidatu[strana][kandidat], hodnotou je, zda získá hlas // pokud některá strana nemá všechny kandidáty, bude to zahrnuto už v této inicializaci pole var poleKandidatu = { 1: {1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false, 26: false, 27: false, 28: false, 29: false, 30: false, 31: false, 32: false, 33: false, 34: false, 35: false, 36: false, 37: false, 38: false, 39: false, 40: false, 41: false, 42: false, 43: false, 44: false, 45: false, 46: false, 47: false, 48: false, 49: false, 50: false, 51: false, 52: false, 53: false, 54: false, 55: false, 56: false, 57: false, 58: false, 59: false, 60: false, 61: false, 62: false, 63: false, 64: false, 65: false}, 2: {1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false, 26: false, 27: false, 28: false, 29: false, 30: false, 31: false, 32: false, 33: false, 34: false, 35: false, 36: false, 37: false, 38: false, 39: false, 40: false, 41: false, 42: false, 43: false, 44: false, 45: false, 46: false, 47: false, 48: false, 49: false, 50: false, 51: false, 52: false, 53: false, 54: false, 55: false, 56: false, 57: false, 58: false, 59: false, 60: false, 61: false, 62: false, 63: false, 64: false, 65: false}, 3: {1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false, 26: false, 27: false, 28: false, 29: false, 30: false, 31: false, 32: false, 33: false, 34: false, 35: false, 36: false, 37: false, 38: false, 39: false, 40: false, 41: false, 42: false, 43: false, 44: false, 45: false, 46: false, 47: false, 48: false, 49: false, 50: false, 51: false, 52: false, 53: false, 54: false, 55: false, 56: false, 57: false, 58: false, 59: false, 60: false, 61: false, 62: false, 63: false, 64: false, 65: false}, 4: {1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false, 26: false, 27: false, 28: false, 29: false, 30: false, 31: false, 32: false, 33: false, 34: false, 35: false, 36: false, 37: false, 38: false, 39: false, 40: false, 41: false, 42: false, 43: false, 44: false, 45: false, 46: false, 47: false, 48: false, 49: false, 50: false, 51: false, 52: false, 53: false, 54: false, 55: false, 56: false, 57: false, 58: false, 59: false, 60: false, 61: false, 62: false, 63: false, 64: false, 65: false}, 5: {1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false, 11: false, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false, 20: false, 21: false, 22: false, 23: false, 24: false, 25: false, 26: false, 27: false, 28: false, 29: false, 30: false, 31: false, 32: false, 33: false, 34: false, 35: false, 36: false, 37: false, 38: false, 39: false, 40: false, 41: false, 42: false, 43: false, 44: false, 45: false, 46: false, 47: false, 48: false, 49: false, 50: false, 51: false, 52: false, 53: false, 54: false, 55: false, 56: false, 57: false, 58: false, 59: false, 60: false, 61: false, 62: false, 63: false, 64: false, 65: false}, 6: {1: false, 2: false, 3: false, 4: false, 5: false, 6: false, 7: false, 8: false, 9: false, 10: false} } // pole poleStran slouží jenom pro předání hodnot z formuláře ke kontrole a přepočtu poleKandidatu // var poleStran = {1:false, 2: false, 3: false, 4: false, 5:false}; // TODO: konstruovat cyklem přes proměnnou stran var poleStran = new Array(); for (var strana in poleKandidatu) poleStran[strana] = false; // pole, do kterého se uloží výsledné hlasy stranám var hlasyStranam = kopirovatPole(poleStran); // v tomto poli pak budou čísla // naplnění pole jmen zástupnými hodnotami „kandidát sXkY“ a „strana č. X“ // spouští se při načítání stránky var jmenoKandidata = kopirovatPole(poleKandidatu); // inicializace pole zkopírováním může blbnout TODO: pochopit a zkontrolovat var jmenoStrany = kopirovatPole(poleStran); //inicializace pole zkopírováním for(var strana in poleKandidatu) { for(var kandidat in poleKandidatu[strana]) jmenoKandidata[strana][kandidat] = „kandidát s“ + strana + „k“ + kandidat; jmenoStrany[strana] = „strana č. “ + strana; // naplnění generickými jmény } // ——- jména stran ————- jmenoStrany[1] = „PRAHA SOBĚ“; jmenoStrany[2] = „Piráti“; jmenoStrany[3] = „STAN“; jmenoStrany[4] = „SPOLU“; jmenoStrany[5] = „ANO 2011“; jmenoStrany[6] = „Nedostatečná strana“; // nahradte vlastními // ——- konec jmen stran ————- // ——- zde začíná oblast se jmény kandidátů ——- jmenoKandidata[6][1] =’Radim Noha‘; jmenoKandidata[6][10] =’Radomír Kokotka‘; jmenoKandidata[6][2] =’David Rybář‘; jmenoKandidata[6][3] =’Celestýn Neděle‘; jmenoKandidata[6][4] =’Robert Tráva‘; jmenoKandidata[6][5] =’Matěj Havránek‘; jmenoKandidata[6][6] =’Vincenc Novotný‘; jmenoKandidata[6][7] =’Matouš Fendrych‘; jmenoKandidata[6][8] =’Karolína Vymyšlená‘; jmenoKandidata[6][9] =’Ondřej Falešný‘; jmenoKandidata[4][1] =’Svoboda Bohuslav doc. MUDr. CSc.‘; jmenoKandidata[4][10] =’Ptáček Jiří‘; jmenoKandidata[4][11] =’Vodrážka David Ing.‘; jmenoKandidata[4][12] =’Kubesa Lucie‘; jmenoKandidata[4][13] =’Lepš Jakub Mgr. M.A.‘; jmenoKandidata[4][14] =’Sedeke Martin Ing.‘; jmenoKandidata[4][15] =’Mareš Pavel Mgr.‘; jmenoKandidata[4][16] =’Kordová Marvanová Hana JUDr.‘; jmenoKandidata[4][17] =’Pek Tomáš Ing.‘; jmenoKandidata[4][18] =’Kaštovský Tomáš MUDr.‘; jmenoKandidata[4][19] =’Slabihoudek Tomáš‘; jmenoKandidata[4][2] =’Pospíšil Jiří JUDr.‘; jmenoKandidata[4][20] =’Pobuda Mikuláš‘; jmenoKandidata[4][21] =’Nowaková Těmínová Jana JUDr.‘; jmenoKandidata[4][22] =’Mikoláš Vojtěch‘; jmenoKandidata[4][23] =’Martan Ondřej Ing.‘; jmenoKandidata[4][24] =’Kubišta Albert Mgr.‘; jmenoKandidata[4][25] =’Michková Lucie Bc.‘; jmenoKandidata[4][26] =’Vintiška Jiří Ing.‘; jmenoKandidata[4][27] =’Hanzlík Karel Mgr.‘; jmenoKandidata[4][28] =’Praus Petr doc. Ing. CSc.‘; jmenoKandidata[4][29] =’Lamberti Giancarlo‘; jmenoKandidata[4][3] =’Zajíček Zdeněk Mgr.‘; jmenoKandidata[4][30] =’Korseska Jan‘; jmenoKandidata[4][31] =’Hošek Marián MUDr.‘; jmenoKandidata[4][32] =’Bureš Richard‘; jmenoKandidata[4][33] =’Stárek Jakub Mgr.‘; jmenoKandidata[4][34] =’Neumann Petr Ing.‘; jmenoKandidata[4][35] =’Bogdanová Lucie Mgr.‘; jmenoKandidata[4][36] =’Jiřík Michal‘; jmenoKandidata[4][37] =’Křiváček Petr MUDr. MBA‘; jmenoKandidata[4][38] =’Šolle Vít Mgr.‘; jmenoKandidata[4][39] =’Jandová Hana Ing.‘; jmenoKandidata[4][4] =’Wolf Jan‘; jmenoKandidata[4][40] =’Kos Vojtěch Ing. MBA‘; jmenoKandidata[4][41] =’Zeman Petr‘; jmenoKandidata[4][42] =’Ladin Jan Ing.‘; jmenoKandidata[4][43] =’Neumann Daniel Mgr.‘; jmenoKandidata[4][44] =’Kůla Bořivoj Ing. MBA‘; jmenoKandidata[4][45] =’Míth Jaroslav Ing.‘; jmenoKandidata[4][46] =’Samec Milan‘; jmenoKandidata[4][47] =’Pecka Robert JUDr.‘; jmenoKandidata[4][48] =’Měšťan Petr Mgr.‘; jmenoKandidata[4][49] =’Šilar Adam Mgr.‘; jmenoKandidata[4][5] =’Hroza Michal Bc.‘; jmenoKandidata[4][50] =’Prosa Jan Ing.‘; jmenoKandidata[4][51] =’Tošil Jaroslav‘; jmenoKandidata[4][52] =’Vácha Filip‘; jmenoKandidata[4][53] =’Rybářová Zlatuše Mgr.‘; jmenoKandidata[4][54] =’Počarovský Ondřej Mgr.‘; jmenoKandidata[4][55] =’Antoš Milan‘; jmenoKandidata[4][56] =’Mamurovová Lucie‘; jmenoKandidata[4][57] =’Stárek Jan Mgr.‘; jmenoKandidata[4][58] =’Blažek Jakub JUDr.‘; jmenoKandidata[4][59] =’Richter Zbyněk‘; jmenoKandidata[4][6] =’Udženija Alexandra Ing.‘; jmenoKandidata[4][60] =’Křivánková Klisáková Dana‘; jmenoKandidata[4][61] =’Sedláčková Petra‘; jmenoKandidata[4][62] =’Halva Tomáš‘; jmenoKandidata[4][63] =’Scholz Petr Mgr.‘; jmenoKandidata[4][64] =’Pohl Houkalová Irena MgA.‘; jmenoKandidata[4][65] =’Neuberg Josef‘; jmenoKandidata[4][7] =’Portlík Tomáš Mgr.‘; jmenoKandidata[4][8] =’Chabr Jan Mgr.‘; jmenoKandidata[4][9] =’Kovářík Zdeněk Ing.‘; jmenoKandidata[5][1] =’Nacher Patrik Ing.‘; jmenoKandidata[5][10] =’Plesníková Marcela RNDr.‘; jmenoKandidata[5][11] =’Nekolný Stanislav MBA‘; jmenoKandidata[5][12] =’Hrubčík Martin Mgr. MBA‘; jmenoKandidata[5][13] =’Gellová Marta Mgr.‘; jmenoKandidata[5][14] =’Vedralová Lenka Mgr.‘; jmenoKandidata[5][15] =’Kaněra Tomáš‘; jmenoKandidata[5][16] =’Ševčíková Mária Mgr.‘; jmenoKandidata[5][17] =’Šoukal Miroslav Mgr.‘; jmenoKandidata[5][18] =’Plesníková Markéta Bc.‘; jmenoKandidata[5][19] =’Kučera Zdeněk Mgr. MBA‘; jmenoKandidata[5][2] =’Prokop Ondřej Ing.‘; jmenoKandidata[5][20] =’Carbolová Jitka Ing.‘; jmenoKandidata[5][21] =’Lacko Radek Ing.‘; jmenoKandidata[5][22] =’Grabein Procházka Karel Ing.‘; jmenoKandidata[5][23] =’Bělaška Michael‘; jmenoKandidata[5][24] =’Horák Martin Ing.‘; jmenoKandidata[5][25] =’Fišer Pavel Bc.‘; jmenoKandidata[5][26] =’Štěpánek Jaroslav MBA‘; jmenoKandidata[5][27] =’Štorek Jan‘; jmenoKandidata[5][28] =’Adámek Jan Ing.‘; jmenoKandidata[5][29] =’Venhoda Petr Mgr. Bc.‘; jmenoKandidata[5][3] =’Rázga Barbora Mgr.‘; jmenoKandidata[5][30] =’Brož Lubomír Ing.‘; jmenoKandidata[5][31] =’Králíček Robert‘; jmenoKandidata[5][32] =’Siváková Miroslava JUDr.‘; jmenoKandidata[5][33] =’Lazárek Štefan MBA‘; jmenoKandidata[5][34] =’Maruštík Milan‘; jmenoKandidata[5][35] =’Bříza Tomáš‘; jmenoKandidata[5][36] =’Zvonař Jaroslav‘; jmenoKandidata[5][37] =’Hejrovská Aneta‘; jmenoKandidata[5][38] =’Garlík Bohumír doc. Ing. CSc., DBA‘; jmenoKandidata[5][39] =’Lukešová Helena‘; jmenoKandidata[5][4] =’Bílek Václav‘; jmenoKandidata[5][40] =’Polách Martin Ing. arch.‘; jmenoKandidata[5][41] =’Fleischer Mark‘; jmenoKandidata[5][42] =’Bendová Jarmila Ing.‘; jmenoKandidata[5][43] =’Kňazovický Vladimír Mgr.‘; jmenoKandidata[5][44] =’Havlíčková Věra JUDr.‘; jmenoKandidata[5][45] =’Vágner David‘; jmenoKandidata[5][46] =’Trčalová Yvona Mgr.‘; jmenoKandidata[5][47] =’Pekar Vasil Silvestr Ing. Ph.D.‘; jmenoKandidata[5][48] =’Endal Josef‘; jmenoKandidata[5][49] =’Kudrnáč Petr Ing.‘; jmenoKandidata[5][5] =’Kolář Jan Bc.‘; jmenoKandidata[5][50] =’Med Karel Ing.‘; jmenoKandidata[5][51] =’Leisztner Helena Ing.‘; jmenoKandidata[5][52] =’Tůmová Dominika‘; jmenoKandidata[5][53] =’Šimon Radek‘; jmenoKandidata[5][54] =’Svatá Jana‘; jmenoKandidata[5][55] =’Kvapilová Yveta Mgr.‘; jmenoKandidata[5][56] =’Kloudová Marie MUDr.‘; jmenoKandidata[5][57] =’Chaloupka Tomáš‘; jmenoKandidata[5][58] =’Fišer Michal MBA‘; jmenoKandidata[5][59] =’Pěkný Vít Ing. Ph.D.‘; jmenoKandidata[5][6] =’Benkovič Martin Mgr.‘; jmenoKandidata[5][60] =’Adamják Tomáš Ing.‘; jmenoKandidata[5][61] =’Bušová Veronika Ing. MBA‘; jmenoKandidata[5][62] =’Zacharov Sergej prof. MD, Ph.D.‘; jmenoKandidata[5][63] =’Salinger Martin Ing.‘; jmenoKandidata[5][64] =’Brojír Oldřich Ing.‘; jmenoKandidata[5][65] =’Staňková Milada Ing.‘; jmenoKandidata[5][7] =’Kleslová Radmila JUDr.‘; jmenoKandidata[5][8] =’Hušbauer Jan‘; jmenoKandidata[5][9] =’Nepil Radomír‘; jmenoKandidata[1][1] =’Čižinský Jan Mgr.‘; jmenoKandidata[1][10] =’Drápalová Kristýna Mgr.‘; jmenoKandidata[1][11] =’Brož Vladan Mgr. et Mgr.‘; jmenoKandidata[1][12] =’Světlík Pavel PhDr.‘; jmenoKandidata[1][13] =’Skála David‘; jmenoKandidata[1][14] =’Kochová Julie Mgr. et Mgr.‘; jmenoKandidata[1][15] =’Buršík Ondřej Ing.‘; jmenoKandidata[1][16] =’Hurrle Jakob Ing. Ph.D.‘; jmenoKandidata[1][17] =’Benda Martin Mgr.‘; jmenoKandidata[1][18] =’Janďourková Alena Bc.‘; jmenoKandidata[1][19] =’Tobrman Michal Mgr.‘; jmenoKandidata[1][2] =’Třeštíková Hana MgA.‘; jmenoKandidata[1][20] =’Linková Kateřina Mgr.‘; jmenoKandidata[1][21] =’Koch Damián‘; jmenoKandidata[1][22] =’Zeman Vít Mgr.‘; jmenoKandidata[1][23] =’Teklý Lukáš Ing.‘; jmenoKandidata[1][24] =’Trník Michal M.A.‘; jmenoKandidata[1][25] =’Svobodová Eva Mgr.‘; jmenoKandidata[1][26] =’Dvořák Jiří Ing.‘; jmenoKandidata[1][27] =’Kožnarová Jana Mgr.‘; jmenoKandidata[1][28] =’Němeček Tomáš Mgr. et Mgr.‘; jmenoKandidata[1][29] =’Felkel Jonáš‘; jmenoKandidata[1][3] =’Scheinherr Adam Ing. MSc., Ph.D.‘; jmenoKandidata[1][30] =’Podzemský Pavel Mgr.‘; jmenoKandidata[1][31] =’Ge Beno mjr. Ing. Bc. MPA‘; jmenoKandidata[1][32] =’Svobodová Sylva Bc.‘; jmenoKandidata[1][33] =’Málek Filip Mgr.‘; jmenoKandidata[1][34] =’Počarovská Amália Mgr.‘; jmenoKandidata[1][35] =’Pašmik Jaroslav Mgr. MBA‘; jmenoKandidata[1][36] =’Turek Filip‘; jmenoKandidata[1][37] =’Janoušek Radek Ing. arch.‘; jmenoKandidata[1][38] =’Vojtíšková Vladislava MVDr. Bc.‘; jmenoKandidata[1][39] =’Hůla Petr Ing. Ph.D.‘; jmenoKandidata[1][4] =’Čapková Mariana Ing. MBA‘; jmenoKandidata[1][40] =’Pištora Vladislav RNDr. CSc.‘; jmenoKandidata[1][41] =’Boudová Lucie Mgr. Ph.D.‘; jmenoKandidata[1][42] =’Tománek Martin‘; jmenoKandidata[1][43] =’Hunalová Kateřina Ing.‘; jmenoKandidata[1][44] =’Tůmová Ilona DiS.‘; jmenoKandidata[1][45] =’Stránský Václav‘; jmenoKandidata[1][46] =’Freund Martin Bc.‘; jmenoKandidata[1][47] =’Škarecký Pavel‘; jmenoKandidata[1][48] =’Štěpán Jiří Ing.‘; jmenoKandidata[1][49] =’Kostohryz Milan JUDr. Ph.D.‘; jmenoKandidata[1][5] =’Vyhnánek Pavel M.A.‘; jmenoKandidata[1][50] =’Šišková Hana Mgr.‘; jmenoKandidata[1][51] =’Šach Matěj Mgr.‘; jmenoKandidata[1][52] =’Grau Petr‘; jmenoKandidata[1][53] =’Dočekalová Jolana Ing.‘; jmenoKandidata[1][54] =’Bašusová Jana Bc.‘; jmenoKandidata[1][55] =’Šlegl Jakub Ing.‘; jmenoKandidata[1][56] =’Špaček Martin Mgr.‘; jmenoKandidata[1][57] =’Mareš Kamil Vavřinec Ing. Ph.D.‘; jmenoKandidata[1][58] =’Pelcl Ladislav Ing.‘; jmenoKandidata[1][59] =’Svoboda Ondřej Ing.‘; jmenoKandidata[1][6] =’Zeman Petr‘; jmenoKandidata[1][60] =’Kozák Kryštof Přemysl PhDr. Mgr. Ph.D.‘; jmenoKandidata[1][61] =’Maršálková Jana Ing.‘; jmenoKandidata[1][62] =’Šorel Michal RNDr. Ph.D.‘; jmenoKandidata[1][63] =’Rejka Jiří‘; jmenoKandidata[1][64] =’Šimbera Jan Mgr.‘; jmenoKandidata[1][65] =’Bouz David‘; jmenoKandidata[1][7] =’Zelenka Pavel‘; jmenoKandidata[1][8] =’Matějková Kamila MgA.‘; jmenoKandidata[1][9] =’Knitl Jiří Mgr.‘; jmenoKandidata[3][1] =’Hlaváček Petr doc. Ing. arch.‘; jmenoKandidata[3][10] =’Starčevičová Zorka Mgr.‘; jmenoKandidata[3][11] =’Šebek Michael prof. Ing. DrSc.‘; jmenoKandidata[3][12] =’Sedmihradská Lucie doc. Ing. Ph.D.‘; jmenoKandidata[3][13] =’Soukupová Radka Ing.‘; jmenoKandidata[3][14] =’Kučerová Marie Ing.‘; jmenoKandidata[3][15] =’Dušek David‘; jmenoKandidata[3][16] =’Michal Kryštof‘; jmenoKandidata[3][17] =’Dobeš Pavel Mgr.‘; jmenoKandidata[3][18] =’Ečeková Maršálová Aneta‘; jmenoKandidata[3][19] =’Zelenka Vojtěch‘; jmenoKandidata[3][2] =’Arnotová Kateřina Mgr.‘; jmenoKandidata[3][20] =’Davídek Zdeněk Ing.‘; jmenoKandidata[3][21] =’Walek Czeslaw Mgr. M.A.‘; jmenoKandidata[3][22] =’Komárek Viktor Ing.‘; jmenoKandidata[3][23] =’Tůma Lukáš Bc.‘; jmenoKandidata[3][24] =’Hromasová Olga JUDr.‘; jmenoKandidata[3][25] =’Liška Jan Ing.‘; jmenoKandidata[3][26] =’Hejl Petr Ing.‘; jmenoKandidata[3][27] =’Hogenová Andrea Mgr. DiS.‘; jmenoKandidata[3][28] =’Krejčí Martin Ing.‘; jmenoKandidata[3][29] =’Kašpar David MgA.‘; jmenoKandidata[3][3] =’Klecanda Antonín Mgr. et Mgr.‘; jmenoKandidata[3][30] =’Boček Pavel MUDr.‘; jmenoKandidata[3][31] =’Alinčová Lenka Ing.‘; jmenoKandidata[3][32] =’Hořánek Zdeněk‘; jmenoKandidata[3][33] =’Křeček Pavel Mgr.‘; jmenoKandidata[3][34] =’Drdácký Tomáš Ing. arch.‘; jmenoKandidata[3][35] =’Šilhová Šafránková Kateřina Mgr.‘; jmenoKandidata[3][36] =’Sigmund Jan Ing.‘; jmenoKandidata[3][37] =’Sládková Lenka‘; jmenoKandidata[3][38] =’Vejvodová Zuzana Ing.‘; jmenoKandidata[3][39] =’Smoljak David‘; jmenoKandidata[3][4] =’Procházka David‘; jmenoKandidata[3][40] =’Vlasák Petr‘; jmenoKandidata[3][41] =’Dvořáková Věra PaedDr.‘; jmenoKandidata[3][42] =’Borská Iveta MUDr.‘; jmenoKandidata[3][43] =’Matušková Vlaďka Mgr. MSc.‘; jmenoKandidata[3][44] =’Ornest Šimon‘; jmenoKandidata[3][45] =’Novotná Hana Mgr.‘; jmenoKandidata[3][46] =’Karvánek Petr Mgr.‘; jmenoKandidata[3][47] =’Kuželová Šárka Mgr.‘; jmenoKandidata[3][48] =’Lagner Ondřej Mgr. Ing. Ph.D.‘; jmenoKandidata[3][49] =’Hradil Zdeněk‘; jmenoKandidata[3][5] =’Karmelitová Pavla Mgr.‘; jmenoKandidata[3][50] =’Prokop Petr MgA.‘; jmenoKandidata[3][51] =’Janečková Blanka Mgr.‘; jmenoKandidata[3][52] =’Hýža Ivan‘; jmenoKandidata[3][53] =’Draštíková Jana‘; jmenoKandidata[3][54] =’Vítů Petr Ing.‘; jmenoKandidata[3][55] =’Ertl Ondřej JUDr.‘; jmenoKandidata[3][56] =’Jireš Jakub Mgr.‘; jmenoKandidata[3][57] =’Kapková Kateřina Mgr.‘; jmenoKandidata[3][58] =’Dobeš Jan Mgr.‘; jmenoKandidata[3][59] =’Růžička Ondřej Ing.‘; jmenoKandidata[3][6] =’Biskup Michal Ing.‘; jmenoKandidata[3][60] =’Mejzlík Miloslav Mgr.‘; jmenoKandidata[3][61] =’Štěpánek Matěj Mgr.‘; jmenoKandidata[3][62] =’Pospíšek Pavel Mgr.‘; jmenoKandidata[3][63] =’Pacovský Martin Mgr.‘; jmenoKandidata[3][64] =’Štrosová Jana Mgr.‘; jmenoKandidata[3][65] =’Hřebík Pavel‘; jmenoKandidata[3][7] =’Hamanová Zuzana Ing. arch.‘; jmenoKandidata[3][8] =’Bělor Roman Ing.‘; jmenoKandidata[3][9] =’Dolgopolova Arina‘; jmenoKandidata[2][1] =’Hřib Zdeněk MUDr.‘; jmenoKandidata[2][10] =’Freitas Lopesová Zuzana Mgr.‘; jmenoKandidata[2][11] =’Lněničková Gabriela Ing. MBA‘; jmenoKandidata[2][12] =’Beránek Jaromír Mgr. Ing.‘; jmenoKandidata[2][13] =’Bodeček David Mgr. MBA‘; jmenoKandidata[2][14] =’Hora Jan Ing.‘; jmenoKandidata[2][15] =’Horáková Eva Mgr.‘; jmenoKandidata[2][16] =’Ferjenčík Mikuláš Bc.‘; jmenoKandidata[2][17] =’Murňák Tomáš‘; jmenoKandidata[2][18] =’Ujhelyiová Zuzana Mgr.‘; jmenoKandidata[2][19] =’Vojta Ondřej Bc.‘; jmenoKandidata[2][2] =’Komrsková Jana Ing.‘; jmenoKandidata[2][20] =’Kabelová Jana‘; jmenoKandidata[2][21] =’Böhmová Zuzana Mgr.‘; jmenoKandidata[2][22] =’Rattay Štěpán Ing.‘; jmenoKandidata[2][23] =’Gottmannová Kornélia Ing.‘; jmenoKandidata[2][24] =’Macek Michal Bc.‘; jmenoKandidata[2][25] =’Veverka Robert‘; jmenoKandidata[2][26] =’Gill Michal Bc.‘; jmenoKandidata[2][27] =’Doseděl František Mgr.‘; jmenoKandidata[2][28] =’Bartko Jan Bc.‘; jmenoKandidata[2][29] =’Štěrba Martin Mgr.‘; jmenoKandidata[2][3] =’Zábranský Adam Mgr.‘; jmenoKandidata[2][30] =’Kočí Michal Mgr.‘; jmenoKandidata[2][31] =’Sodomka Walter Ing.‘; jmenoKandidata[2][32] =’Němec Jaroslav‘; jmenoKandidata[2][33] =’Štěpka Tadeáš‘; jmenoKandidata[2][34] =’Štěrba Albert MUDr.‘; jmenoKandidata[2][35] =’Rychlý Jakub‘; jmenoKandidata[2][36] =’Beránková Michaela‘; jmenoKandidata[2][37] =’Nejedlík Karel Bc.‘; jmenoKandidata[2][38] =’Daníčková Radka Ing.‘; jmenoKandidata[2][39] =’Diblík Ladislav‘; jmenoKandidata[2][4] =’Valdmanová Magdalena‘; jmenoKandidata[2][40] =’Ondráčková Apolena LL.M.‘; jmenoKandidata[2][41] =’Hozmanová Šárka Bc.‘; jmenoKandidata[2][42] =’Backa Jakub JUDr. Ing.‘; jmenoKandidata[2][43] =’Nislerová Tereza Ing. MA, MIM‘; jmenoKandidata[2][44] =’Tichá Eva Ing.‘; jmenoKandidata[2][45] =’Mejsnar Jan Mgr. Ph.D.‘; jmenoKandidata[2][46] =’Suchan Martin Mgr.‘; jmenoKandidata[2][47] =’Raiterová Jana Mgr.‘; jmenoKandidata[2][48] =’Podgorný Pavel Ing.‘; jmenoKandidata[2][49] =’Novotná Jitka Mgr.‘; jmenoKandidata[2][5] =’Mazur Daniel RNDr. PhD.‘; jmenoKandidata[2][50] =’Bauer Karel‘; jmenoKandidata[2][51] =’Rut Adam MgA.‘; jmenoKandidata[2][52] =’Drázdová Zuzana Mgr.‘; jmenoKandidata[2][53] =’Vislous Václav MSc.‘; jmenoKandidata[2][54] =’Hubáčková Tereza Bc. DiS.‘; jmenoKandidata[2][55] =’Gebert Jiří Ing. arch.‘; jmenoKandidata[2][56] =’Lajksnerová Zuzana Mgr.‘; jmenoKandidata[2][57] =’Kolář Petr Ing.‘; jmenoKandidata[2][58] =’Mikoláš Ivan Ing.‘; jmenoKandidata[2][59] =’Malý Karel Ing.‘; jmenoKandidata[2][6] =’Mahrik Viktor‘; jmenoKandidata[2][60] =’Buchtová Helena Mgr.‘; jmenoKandidata[2][61] =’Břečka Josef PhDr.‘; jmenoKandidata[2][62] =’Vybíralová Dagmar‘; jmenoKandidata[2][63] =’Lysoňková Iveta Bc.‘; jmenoKandidata[2][64] =’Petlach Michal‘; jmenoKandidata[2][65] =’Verner Jaroslav‘; jmenoKandidata[2][7] =’Tylová Eva Ing.‘; jmenoKandidata[2][8] =’Soukup Bara Mgr.‘; jmenoKandidata[2][9] =’Brůžek Jiří‘; // nahraďte vlastními // ——- zde končí oblast se jmény kandidátů——- function naplnitJmenaDoTabulky(){ // procházím pole poleKandidatu for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]) // vezmu id jména z tabulky a naleju do něj jmenoKandidata přes innerHTML document.getElementById(„js“+strana+“k“+kandidat).innerHTML = jmenoKandidata[strana][kandidat]; // TODO: testování for(var strana in poleStran) document.getElementById(„js“+strana).innerHTML = jmenoStrany[strana]; } // a hned ji spustíme hned pod dokumentem function sklonujHlasy(n){ var zneni = „hlasů“; if (n % 10 == 1 ) zneni = „hlas“; if (n % 10 == 2 || n % 10 == 3 || n % 10 == 4) zneni = „hlasy“; if (n == 11 || n == 12 || n == 13 || n == 14) zneni = „hlasů“; return n + “ “ + zneni; } /////// ——— oblast výpočtu ——————- // globalni promenne pouzite k vypoctu var hlaseni = {„platnost“:““, „strany“:““, „kandidati“:““, „vyuziti“:““, „poznamka“:““, „duvod“:““}; var zaskrtnutoStran; var zaskrtnutoKandidatu; var zaskrtnutoKandidatuCizichStran; var zaskrtnutaStrana; var vyuzitoHlasu; var jePlatny = true; function vynulovatVse(){ // vynulovat všechna hlášení for(var item in hlaseni) hlaseni[item]=““; for(var strana in poleKandidatu){ document.getElementById(„ps“+strana).innerHTML = „celkem “ + sklonujHlasy(0); } } function naplnitPole() { // pole kandidátů se vynuluje // thx nox@djpw for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]) poleKandidatu[strana][kandidat] = false; // vlastní vynulování // pole se naplní podle aktuálních checkboxů kandidátů // naplnění se dělá procházením postaveného js pole, nikoli procházením html tabulky for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]){ var idecko = „s“ + strana + „k“ + kandidat;// sestavil se nazev idecka v dokumentu // TODO: tady by to chtělo zkontrolovat, zda checkboxy v dokumentu existují // vezmou se data z checkboxů poleKandidatu[strana][kandidat] = window.document.getElementById(idecko).checked; } // pole stran se vynuluje for(var strana in poleStran) poleStran[strana] = false; // pole se naplní podle aktuálních checkboxů stran for(var strana in poleStran){ var idecko = „s“ + strana; poleStran[strana] = window.document.getElementById(idecko).checked; } } function zkontrolovat() { var vPohode = true; // výsledná pravdivostní hodnota funkce var sporne = false; // sporná platnost var mocmandatu = false; // průchod polem stran a kontrola, zda je checknutá nejvýše jedna // pokud víc, tak return false s hlášením // vrati promennou zaskrtnutoStran zaskrtnutoStran=0; for(var strana in poleStran) if (poleStran[strana]) zaskrtnutoStran ++; if (zaskrtnutoStran > 1) { hlaseni.duvod += „Příliš mnoho zaškrtnutých stran (smí být nejvýše 1). §41 (2) b)“; vPohode &= false; } // průchod polem kandidátů a kontrola, kdo je checknutý // pokud jich je víc checknutých než mandátů, return false s hlášením // vrati promennou zaskrtnutoKandidatu zaskrtnutoKandidatu=0; for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]) if(poleKandidatu[strana][kandidat]) zaskrtnutoKandidatu++; if (zaskrtnutoKandidatu > mandatu) { // TODO: sporná platnost mocmandatu = true; if (zaskrtnutoStran == 1){ zaskrtnutoKandidatuCizichStran=0; for(var stranax in poleKandidatu) if(!poleStran[stranax]) for(var kandidatx in poleKandidatu[stranax]) if(poleKandidatu[stranax][kandidatx]) zaskrtnutoKandidatuCizichStran++; if (zaskrtnutoKandidatuCizichStran <= mandatu){ sporne = true; } } } if(mocmandatu && !sporne){ vPohode &= false; hlaseni.duvod += "Je příliš mnoho vykřížkovaných kandidátů. Smí jich být tolik, kolik se volí členů zastupitelstva, v tomto případě tedy " + mandatu + ". Křížků u kandidátů je nyní ale " + zaskrtnutoKandidatu + ". §41 (2) c)"; } if(mocmandatu && sporne){ vPohode &= true; hlaseni.duvod += "Je příliš mnoho křížků u kandidátů, ale část jich je v zakřížkované straně. V tomto případě záleží na rozhodnutí volební komise (§41 odst. 5), v jakém pořadí vyhodnocuje platnost lístku. Pokud dříve vyhodnotí odst. 3, je lístek platný. Pokud dříve vyhodnotí odst. 2 c), bude lístek neplatný. Povolený počet křížků je " + mandatu + ". Křížků u kandidátů je nyní " + zaskrtnutoKandidatu + ". Křížků u nezaškrtnutých stran je " + zaskrtnutoKandidatuCizichStran + ". "; } // kontrola, jestli je vůbec něco checknuté // pokud ne, tak return false s hlášením if (zaskrtnutoKandidatu == 0 && zaskrtnutoStran == 0){ hlaseni.duvod += "K platnosti lístku je potřeba aspoň jeden křížek straně nebo kandidátovi. §41 (2) a)"; vPohode &= false; } if (vPohode) hlaseni.platnost += "Hlasovací lístek je platný. " if (vPohode && sporne) hlaseni.platnost += "Záleží ale na rozhodnutí volební komise (viz níže). “ if (!vPohode) hlaseni.platnost += „Hlasovací lístek je neplatný.“; return vPohode; } function vypocitatKandidaty(){ // volá se pouze při platnosti funkce zkontrolovat() // případ, kdy je potřeba řešit křížek u strany if (zaskrtnutoStran == 1) { // zjištění, která strana je zaškrtnutá, měla by být jenom jedna for(var strana in poleStran) if(poleStran[strana]) zaskrtnutaStrana = strana; // průchod kandidáty zaškrtnuté strany a zrušení jejich křížků for(var kandidat in poleKandidatu[zaskrtnutaStrana]) { if(poleKandidatu[zaskrtnutaStrana][kandidat]) hlaseni.poznamka += „Protože “ + jmenoStrany[zaskrtnutaStrana] + “ je strana zaškrtnutá nahoře, nebere se na křížek u kandidáta “ + jmenoKandidata[zaskrtnutaStrana][kandidat] + “ žádný ohled. § 41 (3)
„; poleKandidatu[zaskrtnutaStrana][kandidat] = false; } // spočítání kandidátů cizích stran (křížky u kandidátů zašktrnuté strany už zmizely v minulém kroku) zaskrtnutoKandidatuCizichStran=0; for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]) if(poleKandidatu[strana][kandidat]) zaskrtnutoKandidatuCizichStran++; // hlaseni.poznamka += „zaškrtnuto kandidátů cizích stran: “ + zaskrtnutoKandidatuCizichStran; // výpočet křížků k udělení kandidátům zaškrtnuté straně var rozdelitKrizku = mandatu – zaskrtnutoKandidatuCizichStran; // hlaseni.poznamka += „křížků k rozdělení: “ + rozdelitKrizku + „. Zašrktnutá strana: “ + zaskrtnutaStrana; // průchod kandidáty strany do počtu rozdělovaných křížků – kandidatuCizichStran a jejich křížkování (pokud existují) // že kandidáti existují, se zaručí tím, že se prochází polem (a nebere se ohled, zda křížky k rozdělení zbyly) for(kandidat in poleKandidatu[zaskrtnutaStrana]) { if (rozdelitKrizku > 0){ poleKandidatu[zaskrtnutaStrana][kandidat] = true; rozdelitKrizku –; } } if (zaskrtnutoStran == 0){ // nic se nedělá } } if (zaskrtnutoStran > 1 || zaskrtnutoStran < 0) hlaseni.poznamka += "Nastala podivuhodná chyba výpočtu."; hlaseni.kandidati += " Kandidáti s obdrženým hlasem jsou zvýraznění a jsou to:
„; for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]) if (poleKandidatu[strana][kandidat]) hlaseni.kandidati += jmenoKandidata[strana][kandidat] + „, „; hlaseni.kandidati += „
Tyto hlasy u kandidátů nemají přímý vliv na rozdělení mandátů stranám. Mandáty se počítají podle hlasů pro strany (uvedené výše).“; } function vypocitatStrany(){ // budeme si hrát s polem hlasyStranam a proměnnou vyuzitoHlasu // vynulovani for(var strana in hlasyStranam) hlasyStranam[strana] = 0; vyuzitoHlasu = 0; // pruchod stranami for(var strana in poleKandidatu){ for (var kandidat in poleKandidatu[strana]) if (poleKandidatu[strana][kandidat]){ hlasyStranam[strana]++; vyuzitoHlasu++; } } // vypsani zisku stran hlaseni.strany += „Z následujících čísel se počítá zisk mandátů pro strany. Jednotlivé strany dostaly tento počet hlasů:
„; for(var strana in hlasyStranam) if (hlasyStranam[strana]>0) hlaseni.strany += jmenoStrany[strana] + „: “ + sklonujHlasy(hlasyStranam[strana]) + „, „; // odkaz na odkryti if(document.getElementById(„radekCelkem“).className == „skryte“){ hlaseni.strany += “
Zobrazit dole v tabulce.“ } else if(document.getElementById(„radekCelkem“).className == „odkryte“){ hlaseni.strany += “
Dole v tabulce skrýt.“ } // využití hlasů hlaseni.vyuziti += „
Volič využil „+ sklonujHlasy(vyuzitoHlasu) + „, tedy “ + Math.floor(100*vyuzitoHlasu/mandatu) + “ % svých hlasů. „; // vyplnění volebního zisku do spodního řádku tabulky celkemHlasu for(var strana in hlasyStranam){ document.getElementById(„ps“+strana).innerHTML = „celkem “ + sklonujHlasy(hlasyStranam[strana]); } } function vypsatVysledek(){ // vypsani hlaseni document.getElementById(„vysledkyPlatnost“).innerHTML = hlaseni.platnost; document.getElementById(„vysledkyStrany“).innerHTML = hlaseni.strany; document.getElementById(„vysledkyKandidati“).innerHTML = hlaseni.kandidati; document.getElementById(„vysledkyVyuziti“).innerHTML = hlaseni.vyuziti; document.getElementById(„vysledkyPoznamka“).innerHTML = hlaseni.poznamka; document.getElementById(„vysledkyDuvod“).innerHTML = hlaseni.duvod; // odbarveni vseho for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]){ prvek = document.getElementById(„i“+“s“+strana+“k“+kandidat); prvek.className = „“; } if (jePlatny){ document.getElementById(„tabulkaListku“).className = „“; // obarveni kandidatu for(var strana in poleKandidatu) for(var kandidat in poleKandidatu[strana]){ prvek = document.getElementById(„i“+“s“+strana+“k“+kandidat); if(poleKandidatu[strana][kandidat]) prvek.className = „dostalHlas“; } } if(!jePlatny){ document.getElementById(„tabulkaListku“).className = „neplatnyListek“; } } ///// hlavní funkce function prepocitat(){ vynulovatVse(); naplnitPole() jePlatny = zkontrolovat() if(jePlatny){ vypocitatKandidaty(); vypocitatStrany(); } vypsatVysledek(); }

Simulátor volebního lístku – pražský magistrát

Před sebou vidíte hlasovací lístek podobný tomu, který budete vyplňovat v komunálních volbách. Zde si můžete vyzkoušet, kdy je vyplnění lístku neplatné a kterým stranám a kandidátům vlastně dáváte hlas. Úplně dole byste hned měli vidět výsledky. Pro jednoduchost jsem sem přidal jen několik kandidujících stran + jednu smyšlenou. Před vyplňováním si napřed všimněte, kolik se volí členů zastupitelstva (na pražský magistrát je to 65, ale na vaši městskou část je to číslo jiné!). Pro ukázku jsem přidal i zcela smyšlenou Nedostatečnou stranu, která je tu jako příklad, abyste si mohli vyzkoušet, co se děje, když nějaká kandidující strana pošle do voleb málo kandidátů. Maximum počtů hlasů, které tato strana dostane, je jejich počet kandidátů – v tomto případě tedy 10 (narozdíl od všech ostatních, kteří maximálně mohou dostat 65). Její šance jsou tak v tomto případě poměrně mizivé.

JAK VOLIT

Možné jsou tři způsoby, jak volit. Ne všechny jsou ale stejně výhodné a některé dokonce vedou k úplně jinému výsledku, než většina voličů očekává. Možnosti jsou tyto:
1) Zakřížkovat stranu či koalici. (vlevo od názvu strany)
2) Zakřížkovat kandidáty napříč stranami v maximálním počtu členů zastupitelstva (například na pražský magistrát je to 65). POZOR! Pokud zakřížkujete menší počet kandidátů, než je členů zastupitelstva, část vašeho hlasu propadá! Pokud zakřížkujete větší počet, váš volební lístek je neplatný!
3) Zkombinovat oba postupy. Zakřížkovat “velkým křížkem” stranu + zakřížkovat další kandidáty napříč politickým spektrem. Vámi zvolená strana dostane zbylý podíl vašeho hlasu. Pokud například na pražský magistrát dáte „velký“ křížek PRAZE SOBĚ a 1 křížek Matějovi Havránkovi z Nedostatečné strany, tak PRAHA SOBĚ dostane 64 hlasů a Nedostatečná strana dostane 1 hlas.
POZOR! Systém ale funguje jinak, než byste čekali!

JAK NEVOLIT?

∙ Zakřížkovat stranu a zakřížkovat kandidáty této strany, které preferujete. Takto funguje kroužkování ve volbách do poslanecké sněmovny, křížkování nikoli, preferenční hlasy se kandidátům nepočítají. Váš hlas pro stranu ale naštěstí nepropadne.
∙ Pokud nedáte žádný „velký křížek“, zakřížkujete jednoho kandidáta z jiné strany, můžete křížkovat i kandidáty vámi zvolené strany, nemá to ale příliš velký význam. Proč? Čtěte dále!
∙ Kandidát k přeskočení potřebuje o 10 % více hlasů, než je průměr všech hlasů, které strana dostala, což je opravdu vysoký práh. Je velmi obtížné v komunálních volbách skákat a zbavit se lídrů strany je v podstatě nemožné. Pokud totiž křížkujete více kandidátů strany, přidělujete tím zároveň i hlasy straně a zvyšujete její průměr. Například PRAHA SOBĚ dostala v minulých volbách 4 197 578 hlasů. Průměrně tak každý kandidát dostal 64 578 hlasů. Aby tedy někdo přeskákal, muselo by se najít 6 458 lidí, kteří nedali PS velký křížek, ale dali křížek jen danému kandidátovi.
∙ Pokud křížkujete kandidáty napříč stranami, rozdělujete tím svůj hlas v prvé řadě příslušným stranám, tedy především jejich lídrům. Křížkovat 65 kandidátů napříč volebním spektrem tedy nemá smysl. To je právě nejvíce matoucí na celém volebním systému, kdy volič, který zodpovědně křížkuje kandidáty, o nichž je přesvědčen, že jsou kvalitní, ve skutečnosti dává hlas někomu úplně jinému.

Co z toho plyne? Systém komunálních voleb se tváří, že můžete vybírat osobnosti, ale fakticky preferenčními křížky podpoříte politickou stranu jako celek a jejího kandidáta na primátora. Pořadím v rámci kandidátky lze zamíchat jen stěží. Více zde: (https://www.respekt.cz/kontext/jak-odstranit-starostu-prichazeji-volby-u-kterych-se-budeme-znovu-mylit)

Srdečné díky patří Arnika, z. s. a hlavně autorovi celé aplikace: Yuhů, Dušan Janovský, [email protected] (volby.rovnou.cz)

HLASOVACÍ LÍSTEK
pro volby do zastupitelstva města Praha (magistrát)

Město Praha (magistrát)

Do zastupitelstva města se volí 65 členů







Zde se zobrazí výsledky, až něco oklikáte.
// naplnění jmen naplnitJmenaDoTabulky();

Informace: § 34 zákona č. 491/2001Sb řeší hlasování, § 40 zákona č. 491/2001Sb popisuje vyhodnocování a § 41 zákona č. 491/2001Sb jednak určuje platnost a hlavně popisuje, že se ignorují křížky kandidátů zaškrtnuté strany.

Tato aplikace volby.rovnou.cz nesmí být použita členy volební komise pro vyhodnocování lístků (zakazuje to zákon č. 491/2001Sb, §42 čl. 4).

Máme své město rádi a záleží nám na místě, kde žijeme.