diff --git a/less/qfq-bs.css.less b/less/qfq-bs.css.less
index 32c1787d43a636f97ab588a3d7b1d4cb2c5cfd1e..608d0e6b9a3f17fdba7e26a9e06c9b659edc082c 100644
--- a/less/qfq-bs.css.less
+++ b/less/qfq-bs.css.less
@@ -199,4 +199,47 @@ i.@{spinner_class} {
 .CodeMirror {
   border: 1px solid @CodeMirror_border_color;
   border-radius: 4px;
+}//}
+
+/* classes for toggleable note mockup, bb */
+.qfq-icon-inside {
+  position: relative;
+  top: -22px;
+  left: calc(100% - 26px);
+}
+
+.qfq-margin-top {
+  margin-top: 10px;
+}
+
+/* spinning icons */
+
+.text-large-with-margin {
+  font-size: 8em;
+  margin: 0.4em;
+}
+
+.glyphicon-spin {
+  -webkit-animation: spin 2000ms infinite linear;
+  animation: spin 2000ms infinite linear;
+}
+@-webkit-keyframes spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
 }
\ No newline at end of file
diff --git a/mockup/inputmodeswitcher.html b/mockup/inputmodeswitcher.html
new file mode 100644
index 0000000000000000000000000000000000000000..1683a5df959b7e81a08ed67a4038688db5798d58
--- /dev/null
+++ b/mockup/inputmodeswitcher.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+
+    <link rel="stylesheet" href="../css/bootstrap.min.css">
+    <link rel="stylesheet" href="../css/bootstrap-theme.min.css">
+    <link rel="stylesheet" href="../css/jqx.base.css">
+    <link rel="stylesheet" href="../css/jqx.bootstrap.css">
+    <link rel="stylesheet" href="../css/qfq-bs.css">
+    <title>Input Mode Switcher</title>
+
+
+</head>
+<body>
+<div class="container">
+    <div class="row">
+        <div class="col-md-10 ">
+            <div class="btn-toolbar pull-right" role="toolbar">
+                <div class="btn-group" role="group">
+                    <button id="save-button" type="button" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-ok"></span></button>
+                    <button id="close-button" type="button" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-remove"></span></button>
+                </div>
+                <div class="btn-group" role="group">
+                    <button id="delete-button" type="button" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-trash"></span></button>
+                </div>
+                <div class="btn-group" role="group">
+                    <a id="form-new-button" href="personmock.html?s=badcaffe1" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-plus"></span></a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <form id='myForm' method='post'
+          accept-charset='UTF-8' autocomplete='on' enctype='application/x-www-form-urlencoded'
+          class='form-horizontal' data-toggle='validator'>
+
+        <div class="form-group clearfix">
+            <div class="col-md-3">
+                <label>Label</label>
+            </div>
+            <div class="col-md-6">
+                <div class="input-group">
+                    <input id="input1" name="name" class="form-control" type="text" placeholder="Name" readonly>
+                    <div class="input-group-btn">
+                        <button class="btn btn-success"
+                                onclick="$('#input1').prop('readonly',!$('#input1').prop('readonly'))">
+                            <span class="glyphicon glyphicon-lock" aria-hidden="true"></span>
+                        </button>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-3 qfq-note">
+                <p>Note</p>
+            </div>
+        </div>
+
+        <div class="form-group">
+            <div class="col-md-3">
+                <label>Password</label>
+            </div>
+            <div class="col-md-6">
+                <div class="input-group">
+                    <input id="passwordinput" type="password" name="password" class="form-control" type="text"
+                           placeholder="Password">
+                    <div class="input-group-btn">
+                        <button class="btn btn-info"
+                                onclick="$('#passwordinput').attr('type',$('#passwordinput').attr('type')==='password' ? 'text': 'password')">
+                            <span class="glyphicon glyphicon-eye-close" aria-hidden="true"></span>
+                        </button>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-3 qfq-note">
+                <p>Note</p>
+            </div>
+        </div>
+
+        <div class="form-group clearfix">
+            <div class="col-md-3">
+                <label>Statement</label>
+            </div>
+            <div class="col-md-6">
+                <textarea class="form-control" rows="20" placeholder="Please give a brief statement of purpose, such as the topics of your main mathematical interest, your past work in mathematics, of your academic plans in graduate school and your subsequent career objectives."></textarea>
+                <span class="glyphicon glyphicon-info-sign text-info qfq-icon-inside" aria-hidden="true" onclick="$('#qfq-info-201').slideToggle('swing')"></span>
+                <div class="alert alert-info" id="qfq-info-201" style="display: none;">
+                    <p>Please give a brief statement of purpose, such as the topics of your main mathematical interest, your past work in mathematics, of your academic plans in graduate school and your subsequent career objectives.</p>
+                </div>
+            </div>
+            <div class="col-md-3 qfq-note">
+                <p>Note</p>
+            </div>
+        </div>
+
+        <div class="form-group clearfix">
+            <div class="col-md-3">
+                <label>Name</label>
+            </div>
+            <div class="col-md-6">
+                <div class="input-group">
+                    <input type=name="name" class="form-control" type="text" placeholder="Name">
+                    <div class="input-group-btn">
+                        <button class="btn btn-info" onclick="$('#qfq-info-202').slideToggle('swing')">
+                            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+                        </button>
+                    </div>
+                </div>
+                <div class="alert alert-info qfq-margin-top" id="qfq-info-202" style="display: none;">
+                    <p>Please give a brief statement of purpose, such as the topics of your main mathematical interest, your past work in mathematics, of your academic plans in graduate school and your subsequent career objectives.</p>
+                </div>
+            </div>
+            <div class="col-md-3 qfq-note">
+                <p>Note</p>
+            </div>
+        </div>
+
+
+
+    </form>
+</div>
+
+<script src="../js/jquery.min.js"></script>
+<script src="../js/bootstrap.min.js"></script>
+<script src="../js/validator.min.js"></script>
+<script src="../js/jqx-all.js"></script>
+<script src="../js/EventEmitter.min.js"></script>
+<script src="../js/qfq.debug.js"></script>
+<script type="text/javascript">
+    $(function () {
+        var qfqPage = new QfqNS.QfqPage({
+            tabsId: 'myTabs',
+            formId: 'myForm',
+            submitTo: 'api/' + $("#submitTo").val(),
+            deleteUrl: 'api/' + $("#deleteUrl").val(),
+            fileUploadTo: 'api/' + $("#uploadTo").val(),
+            fileDeleteUrl: 'api/' + $("#fileDeleteUrl").val(),
+        });
+
+        QfqNS.Log.level = 0;
+
+    });
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/mockup/modal.html b/mockup/modal.html
new file mode 100644
index 0000000000000000000000000000000000000000..ba36efc9de730802db57e8e8339ef638a5c85340
--- /dev/null
+++ b/mockup/modal.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+
+    <link rel="stylesheet" href="../css/bootstrap.min.css">
+    <link rel="stylesheet" href="../css/bootstrap-theme.min.css">
+    <link rel="stylesheet" href="../css/jqx.base.css">
+    <link rel="stylesheet" href="../css/jqx.bootstrap.css">
+    <link rel="stylesheet" href="../css/qfq-bs.css">
+    <title>Input Mode Switcher</title>
+
+
+</head>
+<body>
+<div class="container">
+    <div class="row">
+        <div class="col-md-10 ">
+            <div class="btn-toolbar pull-right" role="toolbar">
+                <div class="btn-group" role="group">
+                    <button id="save-button" type="button" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-ok"></span></button>
+                    <button id="close-button" type="button" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-remove"></span></button>
+                </div>
+                <div class="btn-group" role="group">
+                    <button id="delete-button" type="button" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-trash"></span></button>
+                </div>
+                <div class="btn-group" role="group">
+                    <a id="form-new-button" href="personmock.html?s=badcaffe1" class="btn btn-default navbar-btn"><span
+                            class="glyphicon glyphicon-plus"></span></a>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- Button trigger modal -->
+    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#qfqModal101" data-backdrop="static" data-keyboard="false">
+        <span class="glyphicon glyphicon-search"></span>
+    </button>
+
+    <!-- Modal -->
+    <div class="modal fade" id="qfqModal101" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h4 class="modal-title" id="myModalLabel">Loading Document</h4>
+                </div>
+                <div class="modal-body" style="text-align: center;">
+                    <span class="glyphicon glyphicon-cog glyphicon-spin text-large-with-margin text-primary"></span>
+                    <p>PDF Document is being generated. Please wait.</p>
+                </div>
+                <div class="modal-footer">
+                    <p>In Progress..</p>
+                </div>
+            </div>
+        </div>
+    </div>
+
+</div>
+
+<script src="../js/jquery.min.js"></script>
+<script src="../js/bootstrap.min.js"></script>
+<script src="../js/validator.min.js"></script>
+<script src="../js/jqx-all.js"></script>
+<script src="../js/EventEmitter.min.js"></script>
+<script src="../js/qfq.debug.js"></script>
+<script type="text/javascript">
+    $(function () {
+        var qfqPage = new QfqNS.QfqPage({
+            tabsId: 'myTabs',
+            formId: 'myForm',
+            submitTo: 'api/' + $("#submitTo").val(),
+            deleteUrl: 'api/' + $("#deleteUrl").val(),
+            fileUploadTo: 'api/' + $("#uploadTo").val(),
+            fileDeleteUrl: 'api/' + $("#fileDeleteUrl").val(),
+        });
+
+        QfqNS.Log.level = 0;
+
+    });
+</script>
+</body>
+</html>
\ No newline at end of file