<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title i18n-content="title"></title>
<style type="text/css">
body {
  background-color:#500;
  font-family:Helvetica,Arial,sans-serif;
  margin:0px;
}
.background {
  position:absolute;
  width:100%;
  height:100%;
}
.cell {
  padding:40px;
}
.box {
  width:80%;
  background-color:white;
  color:black;
  font-size:10pt;
  line-height:16pt;
  text-align:left;
  padding:20px;
  position:relative;
  -webkit-box-shadow:3px 3px 8px #200;
  border-radius:5px;
}
html[dir='rtl'] .box {
  text-align:right;
}

.icon {
  background-image: url('ssl/images/roadblock.png');
  background-repeat: no-repeat;
  height: 53px;
  position: absolute;
  width: 64px;
}
.title {
  margin: 0px 77px 0px;
  font-size:18pt;
  line-height: 140%;
  margin-bottom:6pt;
  font-weight:bold;
  color:#660000;
}
.main {
  margin:0px 80px 0px;
}

.submission {
  margin:15px 5px 15px 0px;
  padding:0px;
}
input {
  margin:0px;
}
.proceedbutton {
}
</style>

<script>
function sendCommand(cmd) {
  window.domAutomationController.setAutomationId(1);
  window.domAutomationController.send(cmd);
}

function getChecked() {
  for (var i = 0; i < document.form.group.length; i++) {
    if (document.form.group[i].checked)
      return parseInt(document.form.group[i].value);
  }
  return 0;
}
</script>
</head>
<body oncontextmenu="return false;">
<div class="background"><img src="ssl/roadblock_background.png" width="100%" height="100%" alt="background" onmousedown="return false;"></div>
<table width="100%" cellspacing="0" cellpadding="0">
  <td class="cell" valign="middle" align="center">
    <div class="box">
      <div class="icon"></div>
      <div class="title" i18n-content="headLine"></div>
      <div class="main">
        <form name="form" class="submission">
          <input type="radio" name="group" value="1" checked> <span i18n-content="update"></span><br>
          <input type="radio" name="group" value="2"> <span i18n-content="open_with_reader"></span><br>
          <br>
          <input type="button" i18n-values="value:ok" name="ok" class="proceedbutton" onClick="sendCommand(getChecked());">
          <input type="button" i18n-values="value:cancel" name="cancel" onClick="sendCommand(0);">
        </form>
      </div>
  </td>
</table>
</body>
</html>
