<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
  <title>Slack Invite for OpenWhisk</title>
  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
    crossorigin="anonymous">

  <!-- Optional theme -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
    crossorigin="anonymous">

  <!-- Latest compiled and minified JavaScript -->

  <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
    crossorigin="anonymous"></script>

  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->

  <style>
.splash {
  width: 500px;
  margin: 200px auto;
  font-family: "Helvetica Neue", Helvetica, Arial
}

@media (max-width: 500px) {
  .splash {
      margin-top:100px
  }
}
</style>
</head>

<body>
  <div class="splash">
    <img src="https://s23.postimg.org/oy3kv2uxn/skitch.png" style="height: 60px; margin-left: 100px;"/>
<p>Join the OpenWhisk Community to discuss the project in realtime.</p>
<ul>
  <li><strong>Talk</strong> to the core devs and the OpenWhisk community.</li>
  <li><strong>Learn</strong> from others and ask questions.</li>
  <li><strong>Share</strong> your work and demos.</li>
</ul>
<form class="form-inline">
  <div class="form-group">
    <label for="exampleInputEmail2">Email:</label>
    <input type="email" class="form-control" id="inputEmail" placeholder="jane.doe@example.com" required>
  </div>
  <button type="button" class="btn btn-primary">Send invitation</button>
</form>
<p>Please be nice, respectful and inclusive of others!</p>
<p id="result"></p>
<p>Fork on github <a href="https://github.com/csantanapr/openwhisk-slackinvite" target="blank">csantanapr/openwhisk-slackinvite</a></p>
</div>

<script type="text/javascript">
$(document).ready(function() {
  var btn = $("button");
  var res = $("#result");
  var email = $('#inputEmail');
  function handler() {
    var email = $("input")[0].value;
    $.get("https://545303d4-dd03-4cfc-a553-4253f7929dfd-gws.api-gw.mybluemix.net/openwhisk-team/slackinvite", { email: email })
      .done(function (data) {
        btn.addClass("btn-success");
        btn.html("WOOT. CHECK YOUR EMAIL!");
        res.html(data.message);
      })
      .fail(function (err) {
        res.html(err.statusText + ":Your invitation didn't work :-( ");
        btn.addClass("btn-error");
      });
  }
  btn.click(handler);
  btn.prop("disabled", true);
  
  function validate() {
    console.log("validate")
    if (email[0].validity.typeMismatch) {
      btn.prop("disabled", true);
    } else {
      btn.prop("disabled", false);
    }
  }
  email.keyup(validate); 
})
</script>
</body>

</html>