var codeOption = "<input maxlength='80' name='Option' size='70' type='text'>";
var codeAddButton = "<input onClick='AddOptionAfter(this);' type='button' value='+'>";
var codeRemoveButton = "<input onClick='RemoveOption(this);' type='button' value='-'>";

function AddOptionAfter(ParentElement)
{
  var TableRow = ParentElement.parentNode.parentNode;
  var MainTable = TableRow.parentNode;
  var TotalOptions = document.getElementsByName("Option").length;

  // Neue Zeile
  var NewTableRow = document.createElement("tr");

  // Neue Zellen
  var NewTableCell1 = document.createElement("td");
  NewTableCell1.align = "right";
  NewTableCell1.valign = "top";
  var NewTableCell2 = document.createElement("td");
  NewTableCell2.align = "left";
  NewTableCell2.valign = "top";
  var NewTableCell3 = document.createElement("td");
  NewTableCell3.align = "left";
  NewTableCell3.valign = "top";

  // Buttons und Text an Zelle1
  NewTableCell1.innerHTML = codeRemoveButton;
  NewTableCell2.innerHTML = codeOption;
  NewTableCell3.innerHTML = codeAddButton;

  // Zellen an Zeile
  NewTableRow.appendChild(NewTableCell1);
  NewTableRow.appendChild(NewTableCell2);
  NewTableRow.appendChild(NewTableCell3);
  
  // Zeile an Tabelle
  MainTable.insertBefore(NewTableRow, TableRow.nextSibling);
  TotalOptions++;
  // Info-Feld aktualisieren
  document.getElementById("_Option").innerHTML = "<b><u>Optionen ("+(TotalOptions)+"):";
  // Anzahl aktualisieren
  document.getElementsByName("TotalOptions")[0].value = TotalOptions;
}

function AddOption(ElementNumber, Text)
{
  AddOptionAfter(document.getElementsByName("Option")[ElementNumber]);
  document.getElementsByName("Option")[ElementNumber+1].value = Text;
}

function RemoveOption(ParentElement)
{
  var TableRow = ParentElement.parentNode.parentNode;
  var TotalOptions = document.getElementsByName("Option").length;

  TableRow.parentNode.removeChild(TableRow);
  TotalOptions--;
  // Info-Feld aktualisieren
  document.getElementById("_Option").innerHTML = "<b><u>Optionen ("+(TotalOptions)+"):";
  // Anzahl aktualisieren
  document.getElementsByName("TotalOptions")[0].value = TotalOptions;
}

function GeneratePersonalIDs()
{
  var PersonalID;
  var TotalUsers = document.getElementsByName("TotalUsers")[0].value;
  var Liste = document.getElementById("editUsers");

  Liste.value = "";
  for (ix = 1; ix <= TotalUsers; ix++)
  {
    PersonalID = Math.round(Math.random()*100000000);
    Liste.value += PersonalID+"\n";
  }
}

function CheckFields(EditMode)
{
  // Vollständigkeits-, und Plausibilitätsprüfungen
  var Formular = document.PollDetails;
  var bOk = true;
  var Missing = "";
  var Jahr;
  var Monat;
  var Tag;

  // Elemente weiß machen
  document.getElementById("_Title").style.color = "";
  document.getElementById("_Expire").style.color = "";
  document.getElementById("_Option").style.color = "";
  document.getElementById("_User").style.color = "";
  document.getElementById("_AdminMail").style.color = "";

  // Titel prüfen
  if (Formular.Title.value == "")
  {
    bOk = false;
    document.getElementById("_Title").style.color = "#FF0000";
  }
  // Datum prüfen
  if (Formular.Expire.value != "" && Formular.Expire.value.substr(4,1) == "-" && Formular.Expire.value.substr(7,1) == "-")
  {
    Jahr = Formular.Expire.value.substr(0,4);
    Monat = Formular.Expire.value.substr(5,2);
    Tag = Formular.Expire.value.substr(8,2);
    if (Jahr > 1970 && Jahr < 2030 && Monat > 0 && Monat < 13 && Tag > 0 && Tag < 32)
    {
      var Datum = new Date();
      var Jetzt = new Date();
      
      Datum.setFullYear(Jahr);
      Datum.setMonth(Monat-1);
      Datum.setDate(Tag);
      if (Jetzt > Datum)
      {
        bOk = false;
        document.getElementById("_Expire").style.color = "#FF0000";
      }
    }
    else
    {
      bOk = false;
      document.getElementById("_Expire").style.color = "#FF0000";
    }
  }
  else
  {
    bOk = false;
    document.getElementById("_Expire").style.color = "#FF0000";
  }
  // Optionen prüfen
  if (Formular.Option[0].value == "" || Formular.Option[1].value == "")
  {
    bOk = false;
    document.getElementById("_Option").style.color = "#FF0000";
  }
  // AdminMail prüfen
  if (Formular.AdminMail.value == "")
  {
    bOk = false;
    document.getElementById("_AdminMail").style.color = "#FF0000";
  }
  // Nur bei Neuanlage
  if (document.getElementsByName("PollID")[0].value == -1)
  { // User prüfen
    if (Formular.Public[1].checked && Formular.editUsers.value == "")
    {
      bOk = false;
      document.getElementById("_User").style.color = "#FF0000";
    }
  }
  return bOk;
}

function ConfirmRemove()
{
  if (confirm("Soll diese Umfrage gelöscht werden?") == true)
    document.RemovePoll.submit();
}

function SubmitPoll()
{
  var TotalOptions = document.getElementsByName("TotalOptions")[0].value;
  var TotalUsers = document.getElementsByName("TotalUsers")[0].value;
  var Users = document.getElementById("editUsers").value.split("\n");
  //var AdminID = Math.round(Math.random()*100000000);
  var InputTag;

  if (!CheckFields())
    return;

  for (ixOptions = 1; ixOptions <= TotalOptions; ixOptions++)
  {
    InputTag = document.createElement("input");
    InputTag.name = "Option"+ixOptions;
    InputTag.type = "hidden";
    InputTag.value = document.getElementsByName("Option")[ixOptions-1].value;
    document.getElementById("ParamCollection").appendChild(InputTag);
  }
  for (ixUsers = 1; ixUsers <= TotalUsers; ixUsers++)
  {
    InputTag = document.createElement("input");
    InputTag.name = "User"+ixUsers;
    InputTag.type = "hidden";
    InputTag.value = Users[ixUsers-1];
    document.getElementById("ParamCollection").appendChild(InputTag);
  }
  document.PollDetails.submit();
}

function SubmitVote()
{
  var OptionArray = "";
  var CurrentBox;

  ix = 1;
  CurrentBox = document.getElementById("Option1");
  while (CurrentBox != null)
  {
    if (CurrentBox.checked)
      OptionArray += "1";
    else
      OptionArray += "0";
    CurrentBox = document.getElementById("Option" + ++ix); 
  }
  document.getElementsByName("OptionArray")[0].value = OptionArray;
  document.Voting.submit();
}

function UpdateContent(ElementName, Content)
{
  // hidden-Felder füllen
  document.getElementsByName(ElementName)[0].value = Content;
}

