<?php 
//ini_set("display_errors", "true");
//error_reporting (E_ALL);
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");      require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");      require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");     $App   = new App();  $Nav   = new Nav();  $Menu  = new Menu();

       #*****************************************************************************
       #
       # poll.php
       #
       # Author:                   Chris Aniszczyk
       # Date:                     2016-12-17
       #
       # Description: Quick poll to get input for Luna +1 Sim. Release name. 
       #
       #
       #****************************************************************************
       
       #
       # Begin: page-specific settings.  Change these. 
       $pageTitle           = "Community Poll Vote";
       $pageKeywords = "Eclipse Simultaneous Release 2017";
       $pageAuthor          = "Chris Aniszczyk";
       $theme = "solstice";

	ob_start();
	?>            

	<div id="maincontent" style="width: 90%; padding: 5%;">

	              <h1><?= $pageTitle ?></h1>
	                     <h2>Help decide the name for the 2017 Eclipse Simultaneous Release!</h2>
	
	                     <p>There will be an Eclipse Simultaneous Release on the fourth Wednesday of
	                     June, 2017. But what to call it? Please vote, for your favorite name. Remember, the simultaneous release name is an informal <i>marketing name</i>. It
	                     should be recognizable, pronounceable, relatively distinct and not obvious
	                     to confuse with other software or trademarks. Be sure to
	                     consider how it sounds in context, such as...</p>
						
						<p>
	                      <i>"Hey, go download the <b>Eclipse xyz Release</b> and see all the cool stuff in there!"</i>
						</p>

	                     <p>The following list was arrived at with input from the community (see
	                     <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=483685">bug
	                     483685</a>) and discussions inside the Eclipse Planning Council.</p>

                                    <div style="padding: 5px; margin-left: 1%; margin-right: 1%;">
<?= $pollHTML ?>
                                    </div>


	                     <p><b>Note: The Planning Council reserves the right to make the final decision, in case some
	                     popularly voted item is later found to be unsuitable for some reason.</b><p>

<p>Rank your favorite names for the 2017 release and feel free to drag and drop to order the names (winner will be chosen via Condorcet-IRV):</p>

<p><i>Note: Give each of the following choices a rank, where a smaller-numbered rank means that you prefer that choice more. For example, give your top choice the rank 1. Give choices the same rank if you have no preference between them. You do not have to use all the possible ranks. All choices initially have the lowest possible rank</i>.</p>

<form method="post"
      action="http://civs.cs.cornell.edu/cgi-bin/vote.pl"
      enctype="multipart/form-data"
      name="CastVote">
<input type="hidden" name="key" value="dc3f6ea6cc76ddd2"  />
<input type="hidden" name="id" value="E_dd4ff581da35bddc"  />
<input type="hidden" name="akey" value="b4edce71802e94ff"  />
<table class="form" id="ballot" border="0" cellpadding="5" cellspacing="0"><tr><td>
<table cellpadding="5px" cellspacing="0" border="1" id="preftable">
    <tr class="heading">
	    <th> Choice </th><th>Rank</th></tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Opal</td>
<td><select size="1" name="C4" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Osiris</td>
<td><select size="1" name="C6" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Oort</td>
<td><select size="1" name="C7" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Oxygen</td>
<td><select size="1" name="C8" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Oceana</td>
<td><select size="1" name="C1" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Ohm</td>
<td><select size="1" name="C3" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Odyssey</td>
<td><select size="1" name="C2" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Ozone</td>
<td><select size="1" name="C9" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Oberon</td>
<td><select size="1" name="C0" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
<tr onclick="select_row(this, event.shiftKey||event.ctrlKey);"><td class="choice">Orpheus</td>
<td><select size="1" name="C5" onchange="sort_rows()">
  <option value="1" label="1st" >1st</option>
  <option value="2" label="2nd" >2nd</option>
  <option value="3" label="3rd" >3rd</option>
  <option value="4" label="4th" >4th</option>
  <option value="5" label="5th" >5th</option>
  <option value="6" label="6th" >6th</option>
  <option value="7" label="7th" >7th</option>
  <option value="8" label="8th" >8th</option>
  <option value="9" label="9th" >9th</option>
  <option value="10" label="10th"  selected="selected">10th</option>
</select></td>
</tr>
</table></td>
</tr>
<tr><td><input id="vote" type="submit" value="Submit ranking" name="Vote" /></td></tr>
</table>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script src="vote.js"></script>
<script>setup()</script>

      </div>

	<?php
	       $html = ob_get_contents();
	       ob_end_clean();

	       # Generate the web page
	       $App->generatePage($theme, $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);

	?>

