diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 00000000..5008ddfc
Binary files /dev/null and b/.DS_Store differ
diff --git a/JSF_WBD/build.xml b/JSF_WBD/build.xml
new file mode 100644
index 00000000..89daa6d9
--- /dev/null
+++ b/JSF_WBD/build.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+ Builds, tests, and runs the project JSF_WBD.
+
+
+
diff --git a/JSF_WBD/build/web/META-INF/MANIFEST.MF b/JSF_WBD/build/web/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..59499bce
--- /dev/null
+++ b/JSF_WBD/build/web/META-INF/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/JSF_WBD/build/web/META-INF/context.xml b/JSF_WBD/build/web/META-INF/context.xml
new file mode 100644
index 00000000..f3e1dd8b
--- /dev/null
+++ b/JSF_WBD/build/web/META-INF/context.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/JSF_WBD/build/web/WEB-INF/classes/.netbeans_automatic_build b/JSF_WBD/build/web/WEB-INF/classes/.netbeans_automatic_build
new file mode 100644
index 00000000..e69de29b
diff --git a/JSF_WBD/build/web/WEB-INF/classes/.netbeans_update_resources b/JSF_WBD/build/web/WEB-INF/classes/.netbeans_update_resources
new file mode 100644
index 00000000..e69de29b
diff --git a/JSF_WBD/build/web/WEB-INF/classes/Comment.class b/JSF_WBD/build/web/WEB-INF/classes/Comment.class
new file mode 100644
index 00000000..18670c40
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/Comment.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/Manager.class b/JSF_WBD/build/web/WEB-INF/classes/Manager.class
new file mode 100644
index 00000000..a7ebbb86
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/Manager.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/Post.class b/JSF_WBD/build/web/WEB-INF/classes/Post.class
new file mode 100644
index 00000000..671c0b83
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/Post.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/TempPost.class b/JSF_WBD/build/web/WEB-INF/classes/TempPost.class
new file mode 100644
index 00000000..c7039e89
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/TempPost.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/TempPostEdit.class b/JSF_WBD/build/web/WEB-INF/classes/TempPostEdit.class
new file mode 100644
index 00000000..19f2e4d0
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/TempPostEdit.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/TempPostView.class b/JSF_WBD/build/web/WEB-INF/classes/TempPostView.class
new file mode 100644
index 00000000..bde98e67
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/TempPostView.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/User.class b/JSF_WBD/build/web/WEB-INF/classes/User.class
new file mode 100644
index 00000000..580ee3e7
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/User.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/UserController.class b/JSF_WBD/build/web/WEB-INF/classes/UserController.class
new file mode 100644
index 00000000..6c40c32c
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/UserController.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/classes/login.class b/JSF_WBD/build/web/WEB-INF/classes/login.class
new file mode 100644
index 00000000..5342191f
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/classes/login.class differ
diff --git a/JSF_WBD/build/web/WEB-INF/glassfish-web.xml b/JSF_WBD/build/web/WEB-INF/glassfish-web.xml
new file mode 100644
index 00000000..13e0059f
--- /dev/null
+++ b/JSF_WBD/build/web/WEB-INF/glassfish-web.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Keep a copy of the generated servlet class' java code.
+
+
+
diff --git a/JSF_WBD/build/web/WEB-INF/lib/javax.faces.jar b/JSF_WBD/build/web/WEB-INF/lib/javax.faces.jar
new file mode 100644
index 00000000..5bd273ea
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/lib/javax.faces.jar differ
diff --git a/JSF_WBD/build/web/WEB-INF/lib/mysql-connector-java-5.1.23-bin.jar b/JSF_WBD/build/web/WEB-INF/lib/mysql-connector-java-5.1.23-bin.jar
new file mode 100644
index 00000000..9bd1fded
Binary files /dev/null and b/JSF_WBD/build/web/WEB-INF/lib/mysql-connector-java-5.1.23-bin.jar differ
diff --git a/JSF_WBD/build/web/WEB-INF/newjsf.xhtml b/JSF_WBD/build/web/WEB-INF/newjsf.xhtml
new file mode 100644
index 00000000..c70ee58c
--- /dev/null
+++ b/JSF_WBD/build/web/WEB-INF/newjsf.xhtml
@@ -0,0 +1,12 @@
+
+
+
+
+ Facelet Title
+
+
+ Hello from Facelets
+
+
+
diff --git a/JSF_WBD/build/web/WEB-INF/web.xml b/JSF_WBD/build/web/WEB-INF/web.xml
new file mode 100644
index 00000000..f4047a8b
--- /dev/null
+++ b/JSF_WBD/build/web/WEB-INF/web.xml
@@ -0,0 +1,28 @@
+
+
+
+ javax.faces.PROJECT_STAGE
+ Development
+
+
+ javax.faces.DEFAULT_SUFFIX
+ .xhtml
+
+
+ Faces Servlet
+ javax.faces.webapp.FacesServlet
+ 1
+
+
+ Faces Servlet
+ *.xhtml
+
+
+
+ 30
+
+
+
+ index.xhtml
+
+
diff --git a/JSF_WBD/build/web/assets/css/screen.css b/JSF_WBD/build/web/assets/css/screen.css
new file mode 100644
index 00000000..55534c69
--- /dev/null
+++ b/JSF_WBD/build/web/assets/css/screen.css
@@ -0,0 +1,1022 @@
+@import url(http://fonts.googleapis.com/css?family=Open+Sans);
+@import url(http://fonts.googleapis.com/css?family=Questrial);
+
+/* Reset & Basics (Inspired by E. Meyers)
+================================================== */
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, address, cite, code, em, img, small, strong, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, embed, figure, figcaption, footer, header, hgroup, menu, nav, section, summary, time, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline; }
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, time, nav, section {
+ display: block; }
+html, body, .wrapper {
+ min-height: 100%;
+}
+
+
+/* Body
+================================================== */
+html, body {
+ height: 100%;
+}
+.wrapper {
+ min-height: 100%;
+}
+body {
+ overflow-x: hidden;
+ font: 17px/28px ff-meta-serif-web-pro, "Georgia", serif;
+ color: #333;
+ background: #fff;
+}
+
+
+/* Typography
+================================================== */
+h1, h2, h3, h4, h5, h6 {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-weight: normal;
+ text-transform: uppercase;
+ font-weight: 700;
+ color: #000;
+ text-rendering: optimizeLegibility;
+}
+
+h1 {
+ font-size: 50px;
+ padding-bottom: 30px;
+}
+
+h2 {
+ font-size: 45px;
+ padding-bottom: 25px;
+}
+
+h3 {
+ font-size: 40px;
+ padding-bottom: 20px;
+}
+
+h4 {
+ font-size: 35px;
+ padding-bottom: 15px;
+}
+
+h5 {
+ font-size: 30px;
+ padding-bottom: 10px;
+}
+
+h6 {
+ font-size: 45px;
+ padding-bottom: 25px;
+ padding-top: 10%;
+}
+
+.judul {
+ font-size: 45px;
+ padding-bottom: 10px;
+ font-family: 'Questrial', sans-serif;
+}
+
+.isi {
+ font-size: 28px;
+ font-family: Georgia,Cambria,"Times New Roman",Times,serif;
+ text-align: justify;
+}
+
+p {
+ margin: 0 0 28px 0;
+}
+
+strong {
+ font-weight: bold;
+}
+em {
+ font-style: italic;
+}
+sup {
+ line-height: 0;
+}
+
+small {
+ font-size: 70%;
+}
+
+cite {
+ font-size: 80%;
+ font-style: italic;
+ }
+
+/* Teaser
+================================================== */
+
+header#teaser h1 {
+ text-transform: none !important;
+ color: #333;
+ font-size: 28px !important;
+ font-weight: 300 !important;
+}
+
+
+/* Links
+================================================== */
+a {
+ color: #F40034;
+ text-decoration: none;
+ -webkit-transition: color .2s ease-in-out;
+ -moz-transition: color .2s ease-in-out;
+ transition: color .2s ease-in-out;
+}
+a:hover {
+ color: #F40034;
+}
+
+/* Layout
+================================================== */
+/* White container that is the "page" */
+.wrapper {
+ max-width: 1500px;
+ margin: 0 auto;
+}
+
+/* Containers to keep content to a set width */
+.nav,
+.nav2,
+.art-header-inner,
+.footer,
+.art-list,
+.abt,
+.fourohfour {
+ width: 980px;
+}
+.nav,
+.nav2,
+.art-body-inner,
+.footer,
+.art-list,
+.abt,
+.fourohfour {
+ position: relative;
+ margin: 0 auto;
+}
+
+/* Nav
+================================================== */
+.nav {
+ top: 0;
+ left: 0%;
+ height: 70px;
+ padding-top: 40px;
+ margin-left: 0px; /* Half width of nav */
+ /* border-bottom: 1px solid #333; */
+ z-index: 100;
+ width: 100%;
+ background: rgba(190, 190, 190, 1);
+ position: fixed;
+}
+.nav.fixed {
+ position: fixed;
+}
+#logo {
+ float: left;
+ margin-left: 5%;
+}
+.nav-primary {
+ float: right;
+ margin-right: 5%;
+}
+.nav-primary li {
+ display: inline-block;
+ margin-left: 10px;
+ font-weight: 500;
+}
+#logo h1,
+.nav-primary li,
+.nav-primary li a {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-weight: 700;
+ font-size: 13px;
+ line-height: 30px;
+ color: #000;
+ text-transform: uppercase;
+}
+
+#logo h1 {
+ height: 30px;
+ margin-left: 0px;
+ letter-spacing: 1px;
+ font-family: 'Questrial', sans-serif;
+ font-size: 30px;
+}
+
+#logo h1 span{
+ color: #F40034 !important;
+}
+
+.nav li:first-child {
+ margin-left: 0; /* Remove left margin from the first nav li */
+}
+
+/* Nav2
+================================================== */
+.nav2 {
+ top: 0;
+ left: 0%;
+ height: 70px;
+ padding-top: 40px;
+ margin-left: 0px; /* Half width of nav */
+ /* border-bottom: 1px solid #333; */
+ z-index: 100;
+ width: 100%;
+ background: rgba(190, 190, 190, 1);
+ position: fixed;
+}
+.nav2.fixed {
+ position: fixed;
+}
+#logo {
+ float: left;
+ margin-left: 10%;
+}
+.nav2-primary {
+ float: right;
+ left: 85%;
+ border: 1px solid;
+ border-radius: 6px;
+ position: fixed;
+}
+.nav2-primary li {
+ display: inline-block;
+ margin-left: 10px;
+ font-weight: 500;
+ width: 120px;
+}
+#logo h1,
+.nav2-primary li,
+.nav2-primary li a {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-weight: 700;
+ font-size: 13px;
+ line-height: 30px;
+ color: #000;
+ text-transform: uppercase;
+ margin-left: 5%;
+}
+
+#logo h1 {
+ height: 30px;
+ margin-left: 0px;
+ letter-spacing: 1px;
+ font-family: 'Questrial', sans-serif;
+ font-size: 30px;
+}
+
+#logo h1 span{
+ color: #F40034 !important;
+}
+
+.nav2 li:first-child {
+ margin-left: 0; /* Remove left margin from the first nav li */
+}
+
+/* Home Page
+================================================== */
+
+div#home {}
+
+#home > div.cover {
+ max-width: 980px;
+ margin: 0px auto;
+ /*padding-top: 110px;*/
+}
+
+div.cover {
+}
+
+div.cover > img {
+ width: 100%;
+ height: 100%;
+}
+
+
+/* Article
+================================================== */
+.art {
+ margin-top: -131px;
+}
+/* Header */
+.art-header {
+ height: 500px;
+ /* Background image is defined in the post */
+ background-position: top center;
+ background-attachment: fixed;
+ overflow: hidden;
+ padding-top: 230px;
+}
+/* Contains the time, title and subtitle for an article */
+.art-header-inner {
+ position: relative;
+ top: 70px;
+ left: 50%;
+ margin-left: -490px;
+}
+.art-time,
+.art-title,
+.art-subtitle {
+ text-align: center;
+ text-transform: uppercase;
+}
+.art-time {
+ font-size: 14px;
+ line-height: 1.8;
+ letter-spacing: 4px;
+ padding-top: 10%;
+}
+.art-title {
+ font-size: 100px;
+ line-height: .9;
+ letter-spacing: -2px;
+ width: 100%;
+ padding-top: 1%;
+}
+.art-subtitle {
+ margin-top: 4px;
+ font-size: 14px;
+ line-height: 1.3;
+ letter-spacing: 4px;
+}
+
+/* If small header, make few adjustments */
+.small .art-title {
+ font-size: 70px;
+ line-height: 65px;
+}
+.small.art-header-inner {
+ top: 320px;
+}
+
+/* Body */
+.art-body {
+ position: relative;
+ width: 100%;
+ background: #fff;
+ z-index: 50;
+ -webkit-box-shadow: 0 -3px 3px rgba(0,0,0,.2);
+ -moz-box-shadow: 0 -3px 3px rgba(0,0,0,.2);
+ box-shadow: 0 -3px 3px rgba(0,0,0,.2);
+}
+.art-body-inner {
+ font-family: Georgia,Cambria,"Times New Roman",Times,serif;
+ max-width: 640px;
+ padding: 80px 0 50px;
+ letter-spacing: 0.01rem;
+ font-weight: 400;
+ font-style: normal;
+ font-size: 21px;
+ line-height: 1.5;
+ text-align: justify;
+}
+.art-body-inner a:hover {
+ border-bottom: 1px solid #F40034;
+ padding-bottom:2px;
+}
+.art-body-inner ul,
+.art-body-inner ol { /* For lists in the article body */
+ margin-bottom: 26px;
+}
+.art-body-inner ul li {
+ list-style: disc;
+}
+
+.art-body-inner mark {
+ background-color: #fdffb6;
+ padding: 2px;
+ -webkit-box-shadow: #fdffb6 0 0 5px;
+ -moz-box-shadow: #fdffb6 0 0 5px;
+ box-shadow: #fdffb6 0 0 5px;
+}
+
+.art-body-inner blockquote {
+ font-size: 16px;
+ background: #f9f9f9;
+ border-left: 10px solid #ccc;
+ margin: 1.5em 10px;
+ padding: 0.5em 10px;
+ quotes: "\201C""\201D""\2018""\2019";
+}
+
+.art-body-inner blockquote p:first-child:before {
+ color: #ccc;
+ content: "“";
+ font-size: 4em;
+ line-height: 0.1em;
+ margin-right: 0.25em;
+ vertical-align: -0.4em;
+}
+
+.art-body-inner blockquote p {
+ margin-bottom: 1.5em;
+}
+
+.art-body-inner blockquote p:last-child {
+ margin-bottom: 0;
+}
+
+
+.dropcap { /* First character on articles */
+ float: left;
+ margin: 47px 10px 20px 0;
+ font-size: 100px;
+ line-height: 0;
+}
+.art-subhead { /* Subheads are used to break up sections of an article */
+ margin: 60px 0 15px;
+ font-size: 20px;
+ line-height: 28px;
+ letter-spacing: 3px;
+}
+.callout { /* Callouts are like large pullquotes */
+ font-weight: bold;
+}
+.art-body-inner img {
+ max-width: 100%;
+ max-height: 600px;
+ margin-bottom: 26px;
+}
+.art-body-inner img.center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.art-body-inner .art-reference {
+ font-size: 80%;
+ color: #999;
+ margin-top: 50px;
+}
+
+/* For simple, white background posts */
+.simple .art-body {
+ background: none;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+
+/* List of Articles
+================================================== */
+.art-list {
+ padding: 120px 0 0;
+}
+.art-list-body {
+ position: relative;
+ overflow: hidden;
+ float: left;
+ width: 100%;
+}
+.art-list-item {
+ padding: 40px 0;
+ list-style: none;
+ overflow: hidden;
+ border-bottom: 1px solid #ccc;
+}
+.art-list-item:last-child {
+ border-bottom: none;
+}
+.art-list-title {
+ font-size: 26px;
+ line-height: 26px;
+ font-weight: 700;
+ padding-left: 20%;
+}
+.art-list-item-title-and-time {
+ float: left;
+ width: 60%;
+ margin-bottom: 10px;
+}
+.art-list-time {
+ float: left;
+ font-size: 12px;
+ line-height: 20px;
+ letter-spacing: 2px;
+ text-transform: uppercase;
+ text-align: right;
+ color: #999;
+ margin-left: 34%;
+ margin-right: 10%;
+}
+.art-list-title a {
+ color: #000;
+ -webkit-transition: font-size 1s;
+ transition: font-size 1s;
+}
+.art-list-title a:hover {
+ color: #F40034;
+ font-size: 30px;
+}
+.art-list-item p {
+ width: 65%;
+ float: left;
+ margin-left: 20%;
+ margin-bottom: 10px;
+ font-size: 16px;
+ line-height: 24px;
+}
+
+
+/* Footer
+================================================== */
+.footer {
+ padding: 30px 0 40px;
+ overflow: hidden;
+ border-top: 1px solid #ccc;
+}
+.footer,
+.footer a {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-size: 13px;
+ text-transform: uppercase;
+ color: #666666;
+}
+
+.btt {
+ border: 1px solid;
+ border-radius: 6px;
+ padding: 5px;
+}
+.footer a:hover {
+ color: #000;
+}
+.back-to-top,
+.footer-nav,
+.offsite-links {
+ width: 25%;
+ float: left;
+}
+.psi {
+ width: 50%;
+ float:left;
+ text-align: center;
+}
+.footer-nav {
+ text-align: center;
+}
+.offsite-links {
+ text-align: right;
+}
+.footer .twitter-link:hover {
+ color: #0084B4;
+}
+.footer .instagram-link:hover {
+ color: #3F729B;
+}
+.footer .github-link:hover {
+ color: #c5376d;
+}
+.footer .caffein8-link:hover{
+ color: black;
+}
+.footer .rss-link:hover {
+ color: #e85d24;
+}
+/* Remove prev & next links on loop */
+.art-list + .footer .footer-nav,
+.abt + .footer .footer-nav {
+ text-indent: -9999px;
+ text-align: left;
+}
+
+
+/* White Reverse Theme
+================================================== */
+/* Nav */
+.nav.white {
+ border-bottom-color: #fff;
+ border-bottom-color: rgba(255,255,255,.3);
+}
+.nav.white li a,
+.nav.white li,
+.nav.white #logo h1 {
+ color: #fff;
+ text-shadow: 0 0 8px rgba(0,0,0,.5);
+}
+.nav.white #logo h1 {
+ background-position: top center;
+}
+
+nav.pagination{
+ text-align: right;
+ padding-bottom: 25px;
+}
+/* Art header */
+.art-header.white {
+ background-color: #111;
+}
+.art-header.white .art-time,
+.art-header.white .art-title,
+.art-header.white .art-subtitle {
+ color: #fff;
+ text-shadow: 0 0 8px rgba(0,0,0,.5);
+}
+
+/* Nav2 */
+.nav2.white {
+ border-bottom-color: #fff;
+ border-bottom-color: rgba(255,255,255,.3);
+}
+.nav2.white li a,
+.nav2.white li,
+.nav2.white #logo h1 {
+ color: #fff;
+ text-shadow: 0 0 8px rgba(0,0,0,.5);
+}
+.nav2.white #logo h1 {
+ background-position: top center;
+}
+
+
+/* About page
+================================================== */
+.abt {
+ padding: 200px 0 100px;
+ list-style: none;
+}
+.abt .abt-header {
+ font-size: 140px;
+ line-height: 1;
+ text-transform: none;
+}
+.abt .abt-subheader {
+ font-size: 24px;
+ font-style: italic;
+ text-transform: none;
+ color: #777;
+}
+.abt-body {
+ -moz-column-count: 2;
+ -moz-column-gap: 20px;
+ -webkit-column-count: 2;
+ -webkit-column-gap: 20px;
+ margin-bottom: 28px;
+}
+.abt-signoff {
+ line-height: 1.3;
+ font-style: italic;
+ color: #777;
+}
+
+/* 404 page
+================================================== */
+.fourohfour {
+ padding: 240px 0 100px;
+ text-align: center;
+}
+
+/* Code
+================================================== */
+
+code, tt {
+background: #ededee;
+color: #3C4043;
+font-size: 90%;
+padding: 1px 3px;
+}
+
+pre {
+ width: 92%;
+ overflow: auto;
+ margin: 2rem 0;
+ padding: 1rem 0.8rem 1rem 1.2rem;
+ color: #3f3b36;
+ border: 1px solid #ccc;
+ border-left: 1rem solid #ccc;
+ font: lighter 1.2rem/2rem monospace;
+ background: url(/assets/img/pre.png) repeat 0 -0.9rem;
+ background-size: 1px 4rem;
+}
+
+pre code, tt {
+font-size: inherit;
+white-space: -moz-pre-wrap;
+white-space: pre-wrap;
+background: transparent;
+border: none;
+padding: 0;
+}
+
+
+.gist {
+ font-size: 14px;
+}
+
+
+/* Responsive
+================================================== */
+@media only screen and (max-width: 1080px) {
+ /* Set all of the 980 containers to flexible width */
+ .nav,
+ .nav2,
+ .art-body-inner,
+ .art-header-inner,
+ .footer,
+ .art-list,
+ .abt,
+ .fourohfour {
+ width: 90%;
+ }
+ .nav,
+ .nav2,
+ .art-header-inner {
+ margin-left: -45%;
+ }
+}
+
+@media only screen and (max-width: 1024px) {
+ /* Everything becomes scrolling and non-fading */
+ .nav,
+ .nav2,
+ .nav.fixed,
+ .nav2.fixed {
+ position: relative;
+ opacity: 1 !important; /* Important to override JS values */
+ display: inline-block;
+ }
+ .art-header-inner {
+ position: relative;
+ top: 0 !important; /* Important to override JS values */
+ margin-top: 240px !important; /* Important to override JS values */
+ opacity: 1 !important; /* Important to override JS values */
+ }
+ /* Articles no longer have fixed heights */
+ .art-header {
+ height: auto;
+ padding-bottom: 100px;
+ background-size: cover !important;
+ background-attachment: scroll;
+ }
+ /* Remove bottom space out if articles doesn't have a background */
+ .simple .art-header {
+ padding-bottom: 0;
+ }
+ .art-list {
+ padding-top: 0;
+ }
+ .abt {
+ padding: 40px 0;
+ }
+ .fourohfour {
+ padding: 80px 0 60px;
+ }
+}
+
+@media only screen and (max-width: 780px) {
+ .art-body-inner ul,
+ .art-body-inner ol {
+ margin-left: 20px;
+ }
+ .art-title {
+ letter-spacing: 0;
+ }
+ .art-subtitle,
+ .art-time {
+ font-size: 12px;
+ }
+ .nav,
+ .nav2 {
+ padding-top: 25px;
+ height: 55px;
+ }
+ .art-list-item-title-and-time,
+ .art-list-item p {
+ float: none;
+ width: auto;
+ margin-left: 0;
+ }
+ .abt-body {
+ -moz-column-count: 1;
+ -webkit-column-count: 1;
+ }
+}
+
+@media only screen and (max-width: 500px) {
+ .nav-primary li {
+ margin-left: 10px;
+ }
+ .nav #logo h1 {
+ font-size: 16px;
+ letter-spacing: -1px;
+ }
+ .nav li a {
+ font-size: 12px;
+ }
+ .art-header {
+ padding-bottom: 50px;
+ }
+ .art-header-inner {
+ margin-top: 190px !important;
+ }
+ .art-body-inner {
+ padding-top: 30px;
+ }
+ body {
+ font-size: 15px;
+ line-height: 24px;
+ }
+ p {
+ margin-bottom: 24px;
+ }
+ .footer {
+ padding: 10px 0 20px;
+ }
+ .back-to-top,
+ .footer-nav {
+ width: 10%;
+ }
+ .back-to-top {
+ text-align: left;
+ }
+ .footer-nav {
+ text-align: right;
+ }
+ .offsite-links {
+ float: left;
+ width: 100%;
+ text-align: left;
+ }
+ .offsite-links a {
+ font-size: 12px;
+ }
+ .art-list + .footer .footer-nav {
+ display: none;
+ }
+ .abt .abt-header {
+ font-size: 80px;
+ }
+ .abt .abt-subheader {
+ font-size: 18px;
+ }
+}
+
+
+/* Misc
+================================================== */
+::selection {
+ background: #000;
+ color: #fff;
+}
+::-moz-selection {
+ background: #000;
+ color: #fff;
+}
+img.left {
+ float: left;
+ margin-right: 20px;
+}
+img.right {
+ float: right;
+ margin-left: 20px;
+}
+/* Clearfixing pile */
+.nav:before,
+.nav2:before,
+.art-body-inner:before,
+.footer:before,
+.art-list:before {
+ content:"";
+ display:table;
+}
+.nav:after,
+.nav2:after,
+.art-body-inner:after,
+.footer:after,
+.art-list:after {
+ clear:both;
+}
+.nav,
+.nav2,
+.art-body-inner,
+.footer,
+.art-list {
+ zoom:1; /* For IE 6/7 (trigger hasLayout) */
+}
+
+
+@-webkit-keyframes le-fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@-moz-keyframes le-fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+.art-header-inner {
+ -webkit-animation: le-fade .5s 0 1 ease-out;
+ -moz-animation: le-fade .5s 0 1 ease-out;
+}
+
+.art-list,
+.nav,
+.nav2,
+.abt,
+.art-body {
+ -webkit-animation: le-fade .5s 0s 1 ease-out;
+ -moz-animation: le-fade .5s 0s 1 ease-out;
+}
+
+hr.featured-article {
+ padding: 0;
+ border: none;
+ border-top: medium double #bbb;
+ color: #bbb;
+ text-align: center;
+}
+hr.featured-article:after {
+ content: "✭ Featured Article ✭";
+ display: inline-block;
+ position: relative;
+ top: -0.8em;
+ font-size: 1.2em;
+ padding: 0 0.6em;
+ background: white;
+}
+
+/* FORM */
+
+#contact-area {
+ width: 600px;
+ margin-top: 25px;
+}
+
+#contact-area input, #contact-area textarea {
+ padding: 5px;
+ width: 471px;
+ font-family: Helvetica, sans-serif;
+ margin: 0px 0px 10px 0px;
+ border: 2px solid #ccc;
+}
+
+#contact-area textarea {
+ height: 90px;
+}
+
+#contact-area textarea:focus, #contact-area input:focus {
+ border: 2px solid #900;
+}
+
+#contact-area input.submit-button {
+ width: 100px;
+}
+
+label {
+ float: left;
+ text-align: right;
+ margin-right: 15px;
+ width: 100px;
+ padding-top: 5px;
+}
+
+/* TAMBAHAN SENDIRI */
+
+.background {
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 100%;
+}
+
+/* DATA TABLE */
+
+.order-table{
+ border-collapse:collapse;
+}
+
+.order-table-header{
+ text-align:center;
+ background:none repeat scroll 0 0 #E5E5E5;
+ border-bottom:1px solid #BBBBBB;
+ padding:16px;
+}
+
+.order-table-odd-row{
+ text-align:center;
+ background:none repeat scroll 0 0 #FFFFFFF;
+ border-top:1px solid #BBBBBB;
+}
+
+.order-table-even-row{
+ text-align:center;
+ background:none repeat scroll 0 0 #F9F9F9;
+ border-top:1px solid #BBBBBB;
+}
\ No newline at end of file
diff --git a/JSF_WBD/build/web/assets/img/.DS_Store b/JSF_WBD/build/web/assets/img/.DS_Store
new file mode 100644
index 00000000..5008ddfc
Binary files /dev/null and b/JSF_WBD/build/web/assets/img/.DS_Store differ
diff --git a/JSF_WBD/build/web/assets/img/background.jpg b/JSF_WBD/build/web/assets/img/background.jpg
new file mode 100644
index 00000000..43622987
Binary files /dev/null and b/JSF_WBD/build/web/assets/img/background.jpg differ
diff --git a/assets/img/favicon.ico b/JSF_WBD/build/web/assets/img/favicon.ico
similarity index 100%
rename from assets/img/favicon.ico
rename to JSF_WBD/build/web/assets/img/favicon.ico
diff --git a/JSF_WBD/build/web/assets/img/logo.png b/JSF_WBD/build/web/assets/img/logo.png
new file mode 100644
index 00000000..a2f87d46
Binary files /dev/null and b/JSF_WBD/build/web/assets/img/logo.png differ
diff --git a/JSF_WBD/build/web/assets/img/logo2.png b/JSF_WBD/build/web/assets/img/logo2.png
new file mode 100644
index 00000000..180eabd6
Binary files /dev/null and b/JSF_WBD/build/web/assets/img/logo2.png differ
diff --git a/assets/img/pre.png b/JSF_WBD/build/web/assets/img/pre.png
similarity index 100%
rename from assets/img/pre.png
rename to JSF_WBD/build/web/assets/img/pre.png
diff --git a/JSF_WBD/build/web/assets/js/app.js b/JSF_WBD/build/web/assets/js/app.js
new file mode 100644
index 00000000..66276cd1
--- /dev/null
+++ b/JSF_WBD/build/web/assets/js/app.js
@@ -0,0 +1,144 @@
+var isMobile;
+
+// Identify if visitor on mobile with lame sniffing to remove parallaxing title
+if( navigator.userAgent.match(/Android/i) ||
+ navigator.userAgent.match(/webOS/i) ||
+ navigator.userAgent.match(/iPhone/i) ||
+ navigator.userAgent.match(/iPod/i) ||
+ navigator.userAgent.match(/iPad/i) ||
+ navigator.userAgent.match(/BlackBerry/)
+){
+ isMobile = true;
+}
+
+$(document).ready(function() {
+
+ // Global vars
+ var $artHeaderInner = $('.art-header-inner');
+ var $artHeader = $('.art-header');
+ var $artTitle = $('.art-title');
+ var $artSubtitle = $('.art-subtitle');
+ var $artTime = $('.art-time');
+ var artTitleFontSize = parseInt($artTitle.css('font-size'));
+ var $nav = $('.nav');
+ var windowScroll;
+
+ // Apply Fittext to article titles to make it scale responsively in a smooth fashion
+ $artTitle.fitText(1, { minFontSize: '34px' });
+
+ // Identify if visitor has a large enough viewport for parallaxing title
+ function isLargeViewport() {
+ if($nav.css('position') == "relative") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ // If large viewport and not mobile, parallax the title
+ if(!isMobile) {
+ $(window).scroll(function() {
+ if(isLargeViewport()) {
+ slidingTitle();
+ }
+ });
+ }
+
+ // Window gets large enough, need to recalc all parallaxing title values
+ $(window).resize(function() {
+ if(isLargeViewport()) {
+ slidingTitle();
+ }
+ });
+
+ // Functional parallaxing calculations
+ function slidingTitle() {
+ //Get scroll position of window
+ windowScroll = $(this).scrollTop();
+
+ //Slow scroll of .art-header-inner scroll and fade it out
+ $artHeaderInner.css({
+ 'margin-top' : -(windowScroll/3)+"px",
+ 'opacity' : 1-(windowScroll/550)
+ });
+
+ //Slowly parallax the background of .art-header
+ $artHeader.css({
+ 'background-position' : 'center ' + (-windowScroll/8)+"px"
+ });
+
+ //Fade the .nav out
+ $nav.css({
+ 'opacity' : 1-(windowScroll/400)
+ });
+ }
+
+ // Link to top of page without changing URL
+ $('.back-to-top a').click(function(e) {
+ e.preventDefault();
+ $(window).scrollTop(0);
+ })
+
+ // Cover image of the header
+ var $postImage = $('img[alt="cover"]');
+ if ( $postImage.length ) {
+ var postImageURL = $postImage.attr('src');
+ $('.art-header').css('background-image','url(' + postImageURL + ')');
+ $('.art-header').css('background-size','100%');
+
+ // Change color scheme to white
+ $('#logo h1').css('color','white');
+ $('.art-title').css('color','white');
+ $('.art-subtitle').css('color','white');
+ $('.art-time').css('color','white');
+ $('.nav-primary li a').css('color','white');
+
+ // Add Text Shadows
+ $('.art-title').css('text-shadow','3px 3px 0 rgba(0,0,0,0.1), -1px -1px 0 rgba(0,0,0,0.1), 1px -1px 0 rgba(0,0,0,0.1), -1px 1px 0 rgba(0,0,0,0.1), 1px 1px 0 rgba(0,0,0,0.1)');
+ $('.art-subtitle').css('text-shadow','3px 3px 0 rgba(0,0,0,0.1), -1px -1px 0 rgba(0,0,0,0.1), 1px -1px 0 rgba(0,0,0,0.1), -1px 1px 0 rgba(0,0,0,0.1), 1px 1px 0 rgba(0,0,0,0.1)');
+ $('.art-time').css('text-shadow','3px 3px 0 rgba(0,0,0,0.1), -1px -1px 0 rgba(0,0,0,0.1), 1px -1px 0 rgba(0,0,0,0.1), -1px 1px 0 rgba(0,0,0,0.1), 1px 1px 0 rgba(0,0,0,0.1)');
+
+ }
+ $postImage.remove();
+
+ // Subtitles
+ var $subtitle = $('span[id="subtitle"]');
+ if ( $subtitle.length ) {
+ var subtitleText = $('#subtitle').text();
+ $('.art-subtitle').html(subtitleText);
+
+ }
+ $subtitle.remove();
+
+ // Make punctuation smarter
+ jQuery.fn.smarten = (function() {
+
+ function smartenNode(node) {
+ if (node.nodeType === 3) {
+ node.data = node.data
+ .replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // Opening singles
+ .replace(/'/g, "\u2019") // Closing singles & apostrophes
+ .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201c") // Opening doubles
+ .replace(/"/g, "\u201d") // Closing doubles
+ .replace(/--/g, "\u2013") // En dashes
+ .replace(/---/g, "\u2014") // Em dashes
+ .replace(/\.{3}/g, "\u2026"); // Ellipsis
+ } else if (node.nodeType === 1) {
+ if (node = node.firstChild) do {
+ smartenNode(node);
+ } while (node = node.nextSibling);
+ }
+ }
+
+ return function() {
+ return this.each(function(){
+ smartenNode(this);
+ });
+ };
+
+ }());
+
+ // Instantiation
+ $('article').smarten();
+
+});
\ No newline at end of file
diff --git a/JSF_WBD/build/web/assets/js/fittext.js b/JSF_WBD/build/web/assets/js/fittext.js
new file mode 100644
index 00000000..035baa36
--- /dev/null
+++ b/JSF_WBD/build/web/assets/js/fittext.js
@@ -0,0 +1,46 @@
+/*global jQuery */
+/*!
+* FitText.js 1.0
+*
+* Copyright 2011, Dave Rupert http://daverupert.com
+* Released under the WTFPL license
+* http://sam.zoy.org/wtfpl/
+*
+* Date: Thu May 05 14:23:00 2011 -0600
+*/
+$(document).ready(function() {
+
+(function( $ ){
+
+ $.fn.fitText = function( kompressor, options ) {
+
+ // Setup options
+ var compressor = kompressor || 1,
+ settings = $.extend({
+ 'minFontSize' : Number.NEGATIVE_INFINITY,
+ 'maxFontSize' : Number.POSITIVE_INFINITY
+ }, options);
+
+ return this.each(function(){
+
+ // Store the object
+ var $this = $(this);
+
+ // Resizer() resizes items based on the object width divided by the compressor * 10
+ var resizer = function () {
+ $this.css('font-size', Math.max(Math.min($this.width() / (compressor*10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize)));
+ };
+
+ // Call once to set.
+ resizer();
+
+ // Call on resize. Opera debounces their resize by default.
+ $(window).on('resize', resizer);
+
+ });
+
+ };
+
+})( jQuery );
+
+});
\ No newline at end of file
diff --git a/JSF_WBD/build/web/assets/js/jquery.min.js b/JSF_WBD/build/web/assets/js/jquery.min.js
new file mode 100644
index 00000000..16ad06c5
--- /dev/null
+++ b/JSF_WBD/build/web/assets/js/jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.7.2 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+"
"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q=""+"",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
+a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/ ]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
+.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/
+
+
diff --git a/JSF_WBD/build/web/index.xhtml b/JSF_WBD/build/web/index.xhtml
new file mode 100644
index 00000000..46f60915
--- /dev/null
+++ b/JSF_WBD/build/web/index.xhtml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
+ #{o.judul}
+
+
#{o.tanggal.toString()}
+
✭ Featured
+
+ #{o.konten} …
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/build/web/login.xhtml b/JSF_WBD/build/web/login.xhtml
new file mode 100644
index 00000000..d4ba1afe
--- /dev/null
+++ b/JSF_WBD/build/web/login.xhtml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Login
+
+
+
+
+
+
+
diff --git a/JSF_WBD/build/web/manageuser.xhtml b/JSF_WBD/build/web/manageuser.xhtml
new file mode 100644
index 00000000..461b5dde
--- /dev/null
+++ b/JSF_WBD/build/web/manageuser.xhtml
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Manage Users
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+ -
+
+
+
+
Users
+
+
+
+
+
+
+ ID
+
+ #{c.id}
+
+
+
+
+ Username
+
+ #{c.username}
+
+
+
+
+ Password
+
+ #{c.password}
+
+
+
+
+ Email
+
+ #{c.email}
+
+
+
+
+ Role
+
+ #{c.role}
+
+
+
+
+ Edit
+
+
+
+
+
+
+
+ Delete
+
+
+
+
+
+
+
+
Add New User
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bukan admin hayo
+
+
diff --git a/JSF_WBD/build/web/new_post.xhtml b/JSF_WBD/build/web/new_post.xhtml
new file mode 100644
index 00000000..7f08bec8
--- /dev/null
+++ b/JSF_WBD/build/web/new_post.xhtml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Add Post
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+ -
+
+
+
+
Tambah Post
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bukan admin/owner hayo
+
+
diff --git a/JSF_WBD/build/web/unpublished.xhtml b/JSF_WBD/build/web/unpublished.xhtml
new file mode 100644
index 00000000..cdd0eafc
--- /dev/null
+++ b/JSF_WBD/build/web/unpublished.xhtml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Unpublished
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
+ #{o.judul}
+
+
#{o.tanggal.toString()}
+
✭ Featured
+
+ #{o.konten} …
+
+ Publish | Edit | Delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bukan admin/editor hayo
+
+
diff --git a/JSF_WBD/build/web/view_post.xhtml b/JSF_WBD/build/web/view_post.xhtml
new file mode 100644
index 00000000..645293eb
--- /dev/null
+++ b/JSF_WBD/build/web/view_post.xhtml
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | View Post
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
#{tempPostView.konten}
+
+
+
+
Komentar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{o.konten} …
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/build/web/view_post_2.xhtml b/JSF_WBD/build/web/view_post_2.xhtml
new file mode 100644
index 00000000..b81a2759
--- /dev/null
+++ b/JSF_WBD/build/web/view_post_2.xhtml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | View Post
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
#{tempPostView.konten}
+
+
+
+
Komentar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{o.konten} …
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/mysql-connector-java-5.1.23-bin.jar b/JSF_WBD/mysql-connector-java-5.1.23-bin.jar
new file mode 100644
index 00000000..9bd1fded
Binary files /dev/null and b/JSF_WBD/mysql-connector-java-5.1.23-bin.jar differ
diff --git a/JSF_WBD/nbproject/ant-deploy.xml b/JSF_WBD/nbproject/ant-deploy.xml
new file mode 100644
index 00000000..2d5f8778
--- /dev/null
+++ b/JSF_WBD/nbproject/ant-deploy.xml
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/nbproject/build-impl.xml b/JSF_WBD/nbproject/build-impl.xml
new file mode 100644
index 00000000..8e53187e
--- /dev/null
+++ b/JSF_WBD/nbproject/build-impl.xml
@@ -0,0 +1,1446 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set src.dir
+ Must set test.src.dir
+ Must set build.dir
+ Must set build.web.dir
+ Must set build.generated.dir
+ Must set dist.dir
+ Must set build.classes.dir
+ Must set dist.javadoc.dir
+ Must set build.test.classes.dir
+ Must set build.test.results.dir
+ Must set build.classes.excludes
+ Must set dist.war
+
+
+
+
+
+
+
+
+
+The Java EE server classpath is not correctly set up - server home directory is missing.
+Either open the project in the IDE and assign the server or setup the server classpath manually.
+For example like this:
+ ant -Dj2ee.server.home=<app_server_installation_directory>
+
+
+The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}.
+Either open the project in the IDE and assign the server or setup the server classpath manually.
+For example like this:
+ ant -Duser.properties.file=<path_to_property_file> (where you put the property "j2ee.platform.classpath" in a .properties file)
+or ant -Dj2ee.platform.classpath=<server_classpath> (where no properties file is used)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No tests executed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The libs.CopyLibs.classpath property is not set up.
+This property must point to
+org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part
+of NetBeans IDE installation and is usually located at
+<netbeans_installation>/java<version>/ant/extra folder.
+Either open the project in the IDE and make sure CopyLibs library
+exists or setup the property manually. For example like this:
+ ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set JVM to use for profiling in profiler.info.jvm
+ Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.jsp.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select a file in the IDE or set jsp.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable.
+
+
+ Launching ${browse.url}
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must set fix.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+ Some tests failed; see details above.
+
+
+
+ Must select some files in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+ Must select one file in the IDE or set test.class
+
+
+
+ Must select one file in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/nbproject/genfiles.properties b/JSF_WBD/nbproject/genfiles.properties
new file mode 100644
index 00000000..f9c93e9f
--- /dev/null
+++ b/JSF_WBD/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=680d0b8a
+build.xml.script.CRC32=06150b4b
+build.xml.stylesheet.CRC32=651128d4@1.68.1.1
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=680d0b8a
+nbproject/build-impl.xml.script.CRC32=53754044
+nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.68.1.1
diff --git a/JSF_WBD/nbproject/private/private.properties b/JSF_WBD/nbproject/private/private.properties
new file mode 100644
index 00000000..15092a4a
--- /dev/null
+++ b/JSF_WBD/nbproject/private/private.properties
@@ -0,0 +1,8 @@
+deploy.ant.properties.file=/Users/kanya/Library/Application Support/NetBeans/8.0/config/GlassFishEE6/Properties/gfv31295507421.properties
+j2ee.platform.is.jsr109=true
+j2ee.server.domain=/Users/kanya/Documents/glassfish-4.1/glassfish/domains/domain1
+j2ee.server.home=/Users/kanya/Documents/glassfish-4.1/glassfish
+j2ee.server.instance=[/Users/kanya/Documents/glassfish-4.1/glassfish:/Users/kanya/Documents/glassfish-4.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848
+j2ee.server.middleware=/Users/kanya/Documents/glassfish-4.1
+selected.browser=Chrome
+user.properties.file=/Users/kanya/Library/Application Support/NetBeans/8.0/build.properties
diff --git a/JSF_WBD/nbproject/private/private.xml b/JSF_WBD/nbproject/private/private.xml
new file mode 100644
index 00000000..94541223
--- /dev/null
+++ b/JSF_WBD/nbproject/private/private.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/manageuser.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/edit_post.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/edit_user.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/login.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/new_post.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/src/java/login.java
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/index.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/unpublished.xhtml
+ file:/Users/kanya/Documents/IF3110-02-Simple-Blog-Java-master/JSF_WBD/web/home.xhtml
+
+
+
diff --git a/JSF_WBD/nbproject/project.properties b/JSF_WBD/nbproject/project.properties
new file mode 100644
index 00000000..fdb7344b
--- /dev/null
+++ b/JSF_WBD/nbproject/project.properties
@@ -0,0 +1,93 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=true
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+auxiliary.org-netbeans-modules-projectapi.jsf_2e_language=Facelets
+build.classes.dir=${build.web.dir}/WEB-INF/classes
+build.classes.excludes=**/*.java,**/*.form
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+build.web.dir=${build.dir}/web
+build.web.excludes=${build.classes.excludes}
+client.urlPart=
+compile.jsps=false
+conf.dir=${source.root}/conf
+debug.classpath=${build.classes.dir}:${javac.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+display.browser=true
+# Files to be excluded from distribution war
+dist.archive.excludes=
+dist.dir=dist
+dist.ear.war=${dist.dir}/${war.ear.name}
+dist.javadoc.dir=${dist.dir}/javadoc
+dist.war=${dist.dir}/${war.name}
+endorsed.classpath=\
+ ${libs.javaee-endorsed-api-6.0.classpath}
+excludes=
+file.reference.mysql-connector-java-5.1.23-bin.jar=mysql-connector-java-5.1.23-bin.jar
+includes=**
+j2ee.compile.on.save=true
+j2ee.copy.static.files.on.save=true
+j2ee.deploy.on.save=true
+j2ee.platform=1.7-web
+j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar
+j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
+j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
+j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar
+j2ee.platform.wsimport.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar
+j2ee.platform.wsit.classpath=
+j2ee.server.type=gfv3ee6
+jar.compress=false
+javac.classpath=\
+ ${libs.jsf20.classpath}:\
+ ${file.reference.mysql-connector-java-5.1.23-bin.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.debug=true
+javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.7
+javac.target=1.7
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.preview=true
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+lib.dir=${web.docbase.dir}/WEB-INF/lib
+no.dependencies=false
+persistence.xml.dir=${conf.dir}
+platform.active=default_platform
+resource.dir=setup
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+# Space-separated list of JVM arguments used when running a class with a main method or a unit test
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value):
+runmain.jvmargs=
+source.encoding=UTF-8
+source.root=src
+src.dir=${source.root}/java
+test.src.dir=test
+war.content.additional=
+war.ear.name=${war.name}
+war.name=JSF_WBD.war
+web.docbase.dir=web
+webinf.dir=web/WEB-INF
diff --git a/JSF_WBD/nbproject/project.xml b/JSF_WBD/nbproject/project.xml
new file mode 100644
index 00000000..e3cc6c70
--- /dev/null
+++ b/JSF_WBD/nbproject/project.xml
@@ -0,0 +1,27 @@
+
+
+ org.netbeans.modules.web.project
+
+
+ JSF_WBD
+ 1.6.5
+
+
+ ${libs.jsf20.classpath}
+ WEB-INF/lib
+
+
+ ${file.reference.mysql-connector-java-5.1.23-bin.jar}
+ WEB-INF/lib
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/src/conf/MANIFEST.MF b/JSF_WBD/src/conf/MANIFEST.MF
new file mode 100644
index 00000000..59499bce
--- /dev/null
+++ b/JSF_WBD/src/conf/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/JSF_WBD/src/java/Comment.java b/JSF_WBD/src/java/Comment.java
new file mode 100644
index 00000000..2baf0684
--- /dev/null
+++ b/JSF_WBD/src/java/Comment.java
@@ -0,0 +1,70 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.RequestScoped;
+
+/**
+ *
+ * @author ASUS
+ */
+@ManagedBean
+@RequestScoped
+public class Comment {
+
+ /**
+ * Creates a new instance of Comment
+ */
+ int Cid;
+ int Pid;
+ String Nama;
+ String Email;
+ String Konten;
+
+ public Comment() {
+ }
+
+ public void setCid(int Cid) {
+ this.Cid = Cid;
+ }
+
+ public void setPid(int Pid) {
+ this.Pid = Pid;
+ }
+
+ public void setNama(String Nama) {
+ this.Nama = Nama;
+ }
+
+ public void setEmail(String Email) {
+ this.Email = Email;
+ }
+
+ public void setKonten(String Konten) {
+ this.Konten = Konten;
+ }
+
+ public int getCid() {
+ return Cid;
+ }
+
+ public int getPid() {
+ return Pid;
+ }
+
+ public String getNama() {
+ return Nama;
+ }
+
+ public String getEmail() {
+ return Email;
+ }
+
+ public String getKonten() {
+ return Konten;
+ }
+
+
+}
diff --git a/JSF_WBD/src/java/Manager.java b/JSF_WBD/src/java/Manager.java
new file mode 100644
index 00000000..63a8d2ea
--- /dev/null
+++ b/JSF_WBD/src/java/Manager.java
@@ -0,0 +1,113 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.PreparedStatement;
+import com.mysql.jdbc.Statement;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ManagedProperty;
+import javax.faces.bean.ApplicationScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ *
+ * @author ASUS
+ */
+@ManagedBean
+@ApplicationScoped
+public class Manager {
+
+ Connection con = null;
+ Statement stmt = null;
+
+
+ /**
+ * Creates a new instance of DataManager
+ * @throws java.lang.ClassNotFoundException
+ * @throws java.sql.SQLException
+ */
+ public Manager() throws ClassNotFoundException, SQLException {
+ SetupDB();
+ }
+
+ private void SetupDB() throws ClassNotFoundException, SQLException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ con = (Connection) DriverManager.getConnection(host, user, pwd);
+ stmt = (Statement) con.createStatement();
+ }
+ public ArrayList getPublishedPosts() throws SQLException{
+ ArrayList result;
+ result = new ArrayList<>();
+ String q = "SELECT * FROM tb_post WHERE isPublished = true ORDER BY pdate DESC;";
+ ResultSet rs = stmt.executeQuery(q);
+ while (rs.next()) {
+ Post mPost = new Post();
+ mPost.Judul = rs.getString("ptitle");
+ mPost.Konten = rs.getString("pcontent");
+ mPost.Pid = rs.getInt("pid");
+ mPost.Tanggal = rs.getDate("pdate");
+ result.add(mPost);
+ }
+ return result;
+ }
+ public ArrayList getUnPublishedPosts() throws SQLException{
+ ArrayList result;
+ result = new ArrayList<>();
+ String q = "SELECT * FROM tb_post WHERE isPublished = false;";
+ ResultSet rs = stmt.executeQuery(q);
+ while (rs.next()) {
+ Post mPost = new Post();
+ mPost.Judul = rs.getString("ptitle");
+ mPost.Konten = rs.getString("pcontent");
+ mPost.Pid = rs.getInt("pid");
+ mPost.Tanggal = rs.getDate("pdate");
+
+ result.add(mPost);
+ }
+ return result;
+ }
+ public Post getPost(int pid) throws SQLException{
+ String q = "SELECT * FROM tb_post WHERE pid="+pid+";";
+ ResultSet rs = stmt.executeQuery(q);
+ Post mPost = new Post();
+ mPost.Judul = rs.getString("ptitle");
+ mPost.Konten = rs.getString("pcontent");
+ mPost.Pid = rs.getInt("pid");
+ mPost.Tanggal = rs.getDate("pdate");
+ return mPost;
+ }
+ public void deletePost(int pid) throws SQLException, IOException{
+ String q = "DELETE FROM tb_post WHERE pid = "+pid+";";
+ PreparedStatement ps = (PreparedStatement) con.prepareStatement(q);
+ int i = ps.executeUpdate(q);
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("home.xhtml");
+ }
+ public void publishPost(int pid) throws SQLException, IOException{
+ String q = "UPDATE tb_post SET isPublished = '1' WHERE pid = "+pid+";";
+ PreparedStatement ps = (PreparedStatement) con.prepareStatement(q);
+ int i = ps.executeUpdate(q);
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("home.xhtml");
+ }
+
+}
diff --git a/JSF_WBD/src/java/Post.java b/JSF_WBD/src/java/Post.java
new file mode 100644
index 00000000..81ab775d
--- /dev/null
+++ b/JSF_WBD/src/java/Post.java
@@ -0,0 +1,74 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import java.sql.Date;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.RequestScoped;
+
+/**
+ *
+ * @author ASUS
+ */
+@ManagedBean
+@RequestScoped
+public class Post {
+
+
+
+ int Pid = -1;
+ String Judul = "";
+ Date Tanggal = null;
+ String Konten = "";
+ Boolean Published = false;
+ /**
+ * Creates a new instance of Post
+ */
+ public Post() {
+ }
+
+
+
+ public int getPid() {
+ return Pid;
+ }
+
+ public String getJudul() {
+ return Judul;
+ }
+
+ public Date getTanggal() {
+ return Tanggal;
+ }
+
+ public String getKonten() {
+ return Konten;
+ }
+
+ public Boolean isPublished() {
+ return Published;
+ }
+
+ public void setPid(int Pid) {
+ this.Pid = Pid;
+ }
+
+ public void setJudul(String Judul) {
+ this.Judul = Judul;
+ }
+
+ public void setTanggal(Date Tanggal) {
+ this.Tanggal = Tanggal;
+ }
+
+ public void setKonten(String Konten) {
+ this.Konten = Konten;
+ }
+
+ public void setPublished(Boolean Published) {
+ this.Published = Published;
+ }
+
+
+}
diff --git a/JSF_WBD/src/java/TempPost.java b/JSF_WBD/src/java/TempPost.java
new file mode 100644
index 00000000..ac018ac7
--- /dev/null
+++ b/JSF_WBD/src/java/TempPost.java
@@ -0,0 +1,102 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.PreparedStatement;
+import com.mysql.jdbc.Statement;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ApplicationScoped;
+import java.util.Date;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.bean.RequestScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+
+ * @author ASUS
+ */
+@ManagedBean(name="tempPost", eager = true)
+@RequestScoped
+public class TempPost {
+ public int Id;
+ public String Judul = "";
+ public String Tanggal = "";
+ public String Konten = "";
+ /**
+ * Creates a new instance of TempPost
+ */
+ public TempPost() {
+ }
+ public void reset(){
+ Id = -1;
+ Judul = "";
+ Tanggal = "";
+ Konten = "";
+ }
+ public void submitPost() throws ClassNotFoundException, SQLException, IOException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+ Connection con = null;
+ PreparedStatement stmt = null;
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ con = (Connection) DriverManager.getConnection(host, user, pwd);
+
+ String q="INSERT INTO tb_post (`pid`, `pdate`, `ptitle`, `pcontent`, `timestamp`, `isPublished`) "
+ + "VALUES (NULL, "
+ + "'"+ Tanggal +"', "
+ + "'"+ Judul +"', "
+ + "'"+ Konten +"', "
+ + "CURRENT_TIMESTAMP, '0');";
+
+ stmt = (PreparedStatement) con.prepareStatement(q);
+
+ System.out.println(q);
+ int i = stmt.executeUpdate(q);
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("home.xhtml");
+
+
+ }
+ public String getJudul(){
+ return Judul;
+ }
+ public String getTanggal(){
+ return Tanggal;
+ }
+ public String getKonten(){
+ return Konten;
+ }
+ public int getId(){
+ return Id;
+ }
+ public void setJudul(String s){
+ Judul = s;
+ }
+ public void setTanggal(String d){
+ Tanggal = d;
+ }
+ public void setKonten(String s){
+ Konten = s;
+ }
+ public void setId(int i){
+ Id = i;
+ }
+}
diff --git a/JSF_WBD/src/java/TempPostEdit.java b/JSF_WBD/src/java/TempPostEdit.java
new file mode 100644
index 00000000..82a12818
--- /dev/null
+++ b/JSF_WBD/src/java/TempPostEdit.java
@@ -0,0 +1,125 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.PreparedStatement;
+import com.mysql.jdbc.Statement;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ApplicationScoped;
+import java.util.Date;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+
+ * @author ASUS
+ */
+@ManagedBean(name="tempPostEdit", eager = true)
+@SessionScoped
+public class TempPostEdit {
+ public int Pid;
+ public String Judul = "";
+ public String Tanggal = "";
+ public String Konten = "";
+
+ public TempPostEdit() {
+ }
+ public void editPost(int pid) throws ClassNotFoundException, SQLException, IOException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ Connection con = (Connection) DriverManager.getConnection(host, user, pwd);
+ Statement stmt = (Statement) con.createStatement();
+ String q = "SELECT * FROM tb_post WHERE pid=" + pid + ";";
+ System.out.println(q);
+ ResultSet rs = stmt.executeQuery(q);
+ if(rs.next()){
+ Judul = rs.getString("ptitle");
+ Konten = rs.getString("pcontent");
+ Pid = rs.getInt("pid");
+ Tanggal = rs.getDate("pdate").toString();
+
+ }else{
+ Judul = "Ga ada judul";
+ Konten = "Ga ada konten";
+ }
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("edit_post.xhtml");
+
+ }
+ public void submitEdit() throws ClassNotFoundException, SQLException, IOException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+ Connection con = null;
+ PreparedStatement stmt = null;
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ con = (Connection) DriverManager.getConnection(host, user, pwd);
+
+ String q="UPDATE tb_post SET "
+ + "pdate = '"+ Tanggal
+ + "', ptitle = '" + Judul
+ + "', pcontent = '" + Konten
+ + "' WHERE pid = " + Pid + ";";
+
+ System.out.println(q);
+
+ stmt = (PreparedStatement) con.prepareStatement(q);
+
+ int i = stmt.executeUpdate(q);
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("home.xhtml");
+
+
+ }
+ public String getJudul(){
+ return Judul;
+ }
+ public String getTanggal(){
+ return Tanggal;
+ }
+ public String getKonten(){
+ return Konten;
+ }
+ public int getPid(){
+ return Pid;
+ }
+ public void setJudul(String s){
+ Judul = s;
+ }
+ public void setTanggal(String d){
+ Tanggal = d;
+ }
+ public void setKonten(String s){
+ Konten = s;
+ }
+ public void setPid(int i){
+ Pid = i;
+ }
+}
diff --git a/JSF_WBD/src/java/TempPostView.java b/JSF_WBD/src/java/TempPostView.java
new file mode 100644
index 00000000..65b5d907
--- /dev/null
+++ b/JSF_WBD/src/java/TempPostView.java
@@ -0,0 +1,222 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.PreparedStatement;
+import com.mysql.jdbc.Statement;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ *
+ * @author ASUS
+ */
+@ManagedBean
+@SessionScoped
+public class TempPostView {
+ public int Pid;
+ public String Judul = "";
+ public String Tanggal = "";
+ public String Konten = "";
+
+ String cmtNama = "";
+ String cmtEmail = "";
+ String cmtKonten = "";
+
+ /**
+ * Creates a new instance of TempPostView
+ */
+ public TempPostView() {
+ }
+ public void viewPost(int pid) throws ClassNotFoundException, SQLException, IOException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ Connection con = (Connection) DriverManager.getConnection(host, user, pwd);
+ Statement stmt = (Statement) con.createStatement();
+ String q = "SELECT * FROM tb_post WHERE pid=" + pid + ";";
+ System.out.println(q);
+ ResultSet rs = stmt.executeQuery(q);
+ if(rs.next()){
+ Judul = rs.getString("ptitle");
+ Konten = rs.getString("pcontent");
+ Pid = rs.getInt("pid");
+ Tanggal = rs.getDate("pdate").toString();
+
+ }else{
+ Judul = "Ga ada judul";
+ Konten = "Ga ada konten";
+ }
+ System.out.println("Judul : " + getJudul());
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("view_post.xhtml");
+
+ }
+
+ public void viewPost2(int pid) throws ClassNotFoundException, SQLException, IOException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ Connection con = (Connection) DriverManager.getConnection(host, user, pwd);
+ Statement stmt = (Statement) con.createStatement();
+ String q = "SELECT * FROM tb_post WHERE pid=" + pid + ";";
+ System.out.println(q);
+ ResultSet rs = stmt.executeQuery(q);
+ if(rs.next()){
+ Judul = rs.getString("ptitle");
+ Konten = rs.getString("pcontent");
+ Pid = rs.getInt("pid");
+ Tanggal = rs.getDate("pdate").toString();
+
+ }else{
+ Judul = "Ga ada judul";
+ Konten = "Ga ada konten";
+ }
+ System.out.println("Judul : " + getJudul());
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("view_post_2.xhtml");
+
+ }
+
+ public String getCmtNama() {
+ return cmtNama;
+ }
+
+ public String getCmtEmail() {
+ return cmtEmail;
+ }
+
+ public String getCmtKonten() {
+ return cmtKonten;
+ }
+
+ public void setCmtNama(String cmtNama) {
+ this.cmtNama = cmtNama;
+ }
+
+ public void setCmtEmail(String cmtEmail) {
+ this.cmtEmail = cmtEmail;
+ }
+
+ public void setCmtKonten(String cmtKonten) {
+ this.cmtKonten = cmtKonten;
+ }
+
+ public int getPid() {
+ return Pid;
+ }
+
+ public String getJudul() {
+ return Judul;
+ }
+
+ public String getTanggal() {
+ return Tanggal;
+ }
+
+ public String getKonten() {
+ return Konten;
+ }
+
+ public void setPid(int Pid) {
+ this.Pid = Pid;
+ }
+
+ public void setJudul(String Judul) {
+ this.Judul = Judul;
+ }
+
+ public void setTanggal(String Tanggal) {
+ this.Tanggal = Tanggal;
+ }
+
+ public void setKonten(String Konten) {
+ this.Konten = Konten;
+ }
+
+ public ArrayList getCmts() throws ClassNotFoundException, SQLException{
+ ArrayList result = new ArrayList<>();
+
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ Connection con = (Connection) DriverManager.getConnection(host, user, pwd);
+ Statement stmt = (Statement) con.createStatement();
+
+ String q = "SELECT * FROM tb_cmt WHERE pid=" + Pid + ";";
+ ResultSet rs = stmt.executeQuery(q);
+
+ while (rs.next()) {
+ Comment mCmt = new Comment();
+ mCmt.Nama = rs.getString("name");
+ mCmt.Email = rs.getString("email");
+ mCmt.Cid = rs.getInt("cid");
+ mCmt.Konten = rs.getString("ccontent");
+ result.add(mCmt);
+ }
+
+ return result;
+
+ }
+
+ public void postCmt() throws ClassNotFoundException, SQLException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+ String q="INSERT INTO tb_cmt (`cid`, `pid`, `name`, `email`, `ccontent` ,`timestamp`) "
+ + "VALUES (NULL, "
+ + "'"+ Pid +"', "
+ + "'"+ cmtNama +"', "
+ + "'"+ cmtEmail +"', "
+ + "'"+ cmtKonten +"', "
+ + "CURRENT_TIMESTAMP);";
+
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ Connection con = (Connection) DriverManager.getConnection(host, user, pwd);
+ PreparedStatement stmt = (PreparedStatement) con.prepareStatement(q);
+
+ int i = stmt.executeUpdate(q);
+ resetCmt();
+ }
+
+ void resetCmt(){
+ cmtNama = "";
+ cmtKonten = "";
+ cmtEmail = "";
+ }
+}
diff --git a/JSF_WBD/src/java/User.java b/JSF_WBD/src/java/User.java
new file mode 100644
index 00000000..5d793570
--- /dev/null
+++ b/JSF_WBD/src/java/User.java
@@ -0,0 +1,208 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.PreparedStatement;
+import com.mysql.jdbc.Statement;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ApplicationScoped;
+import java.util.Date;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.bean.RequestScoped;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ *
+ * @author kanya
+ */
+@ManagedBean(name="user", eager = true)
+@SessionScoped
+public class User {
+
+ // Constants: roles
+ private static String ROLEGUEST = "guest";
+ private static String ROLEEDITOR = "editor";
+ private static String ROLEOWNER = "owner";
+ private static String ROLEADMIN = "admin";
+
+ /**
+ * @return the ROLEGUEST
+ */
+ public static String getROLEGUEST() {
+ return ROLEGUEST;
+ }
+
+ /**
+ * @param aROLEGUEST the ROLEGUEST to set
+ */
+ public static void setROLEGUEST(String aROLEGUEST) {
+ ROLEGUEST = aROLEGUEST;
+ }
+
+ /**
+ * @return the ROLEEDITOR
+ */
+ public static String getROLEEDITOR() {
+ return ROLEEDITOR;
+ }
+
+ /**
+ * @param aROLEEDITOR the ROLEEDITOR to set
+ */
+ public static void setROLEEDITOR(String aROLEEDITOR) {
+ ROLEEDITOR = aROLEEDITOR;
+ }
+
+ /**
+ * @return the ROLEOWNER
+ */
+ public static String getROLEOWNER() {
+ return ROLEOWNER;
+ }
+
+ /**
+ * @param aROLEOWNER the ROLEOWNER to set
+ */
+ public static void setROLEOWNER(String aROLEOWNER) {
+ ROLEOWNER = aROLEOWNER;
+ }
+
+ /**
+ * @return the ROLEADMIN
+ */
+ public static String getROLEADMIN() {
+ return ROLEADMIN;
+ }
+
+ /**
+ * @param aROLEADMIN the ROLEADMIN to set
+ */
+ public static void setROLEADMIN(String aROLEADMIN) {
+ ROLEADMIN = aROLEADMIN;
+ }
+
+ // Attrbutes
+ private int id;
+ private String username;
+ private String password;
+ private String email;
+ private String role;
+
+ // Methods
+
+ public User() {
+ id = 0;
+ username = "Guest";
+ password = "";
+ email = "";
+ role = User.ROLEGUEST;
+ }
+
+
+ public User(int u_id, String u_username, String u_passw, String u_email, String u_role) {
+ id = u_id;
+ username = u_username;
+ password = u_passw;
+ email = u_email;
+ role = u_role;
+ }
+
+ public User(ResultSet result) {
+ try {
+ id = result.getInt("id");
+ username = result.getString("username");
+ password = result.getString("password");
+ email = result.getString("email");
+ role = result.getString("role");
+ }
+ catch (SQLException e) {
+ id = 0;
+ role = User.ROLEGUEST;
+ username = "Guest";
+ email = password = "";
+ }
+ }
+ /**
+ * @return the id
+ */
+ public int getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the username
+ */
+ public String getUsername() {
+ return username;
+ }
+
+ /**
+ * @param username the username to set
+ */
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ /**
+ * @return the password
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * @param password the password to set
+ */
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * @return the email
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ * @param email the email to set
+ */
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ * @return the role
+ */
+ public String getRole() {
+ return role;
+ }
+
+ /**
+ * @param role the role to set
+ */
+ public void setRole(String role) {
+ this.role = role;
+ }
+
+
+}
diff --git a/JSF_WBD/src/java/UserController.java b/JSF_WBD/src/java/UserController.java
new file mode 100644
index 00000000..fbd9da56
--- /dev/null
+++ b/JSF_WBD/src/java/UserController.java
@@ -0,0 +1,157 @@
+
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.PreparedStatement;
+import com.mysql.jdbc.Statement;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ManagedProperty;
+import javax.faces.bean.ApplicationScoped;
+import javax.faces.bean.RequestScoped;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+/**
+ *
+ * @author kanya
+ */
+@ManagedBean( name = "userController", eager = true)
+@SessionScoped
+public class UserController {
+
+
+
+ Connection con = null;
+ Statement stmt = null;
+
+ private User currentUser = new User();
+ public UserController() throws ClassNotFoundException, SQLException {
+ SetupDB();
+ }
+
+ //Cookie
+
+ // set cookie according to current user
+
+
+ public User getUserByUsername(String username) {
+ try {
+ String q = "SELECT * FROM `user` WHERE `username` = ?";
+ PreparedStatement ps = (PreparedStatement) con.prepareStatement(q);
+ String[] uname = new String[]{username};
+ for (int i = 0; i < uname.length; i++) {
+ ps.setString(i+1, uname[i]);
+ }
+ ResultSet result = stmt.executeQuery(q);
+ while (result.next()) {
+ return new User(result);
+ }
+ return null;
+ }
+ catch (SQLException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+
+
+ private void SetupDB() throws ClassNotFoundException, SQLException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ con = (Connection) DriverManager.getConnection(host, user, pwd);
+ stmt = (Statement) con.createStatement();
+ }
+
+ public void addUser(String usern, String passw, String mail, String rol) throws SQLException, IOException {
+ String a = "INSERT INTO tb_user (username,password,email,role) VALUES ('"+usern+"','"+passw+"','"+mail+"','"+rol+"')";
+ PreparedStatement ps = (PreparedStatement) con.prepareStatement(a);
+ int j = ps.executeUpdate();
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("manageuser.xhtml");
+ }
+
+ public void deleteUser(int id) throws SQLException, IOException {
+ //System.out.println("disini");
+ String q = "DELETE FROM tb_user WHERE userid = "+id+";";
+ PreparedStatement ps = (PreparedStatement) con.prepareStatement(q);
+ int i = ps.executeUpdate(q);
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("manageuser.xhtml");
+ }
+
+ public void editUser(int id, String usern, String passw, String mail, String rol) throws SQLException, IOException{
+ getCurrentUser().setId(id);
+ getCurrentUser().setUsername(usern);
+ getCurrentUser().setPassword(passw);
+ getCurrentUser().setEmail(mail);
+ getCurrentUser().setRole(rol);
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("edit_user.xhtml");
+ }
+
+ public void updateUser(int id, String usern, String passw, String mail, String rol) throws SQLException, IOException{
+ String a = "UPDATE tb_user SET username = '"+usern+"', password = '"+passw+"', email = '"+mail+"', role = '"+rol+"' WHERE userid = "+id+";";
+ PreparedStatement ps = (PreparedStatement) con.prepareStatement(a);
+ int j = ps.executeUpdate();
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.sendRedirect("manageuser.xhtml");
+ }
+
+ public ArrayList getListUser() throws SQLException {
+ ArrayList result = new ArrayList<>();
+ String q = "SELECT * FROM tb_user;";
+ ResultSet rs = stmt.executeQuery(q);
+ while (rs.next()) {
+ User mUser = new User();
+ mUser.setId(rs.getInt("userid"));
+ mUser.setUsername(rs.getString("username"));
+ mUser.setPassword(rs.getString("password"));
+ mUser.setEmail(rs.getString("email"));
+ mUser.setRole(rs.getString("role"));
+ result.add(mUser);
+ }
+ return result;
+ }
+
+ /**
+ * @return the currentUser
+ */
+ public User getCurrentUser() {
+ return currentUser;
+ }
+
+ /**
+ * @param currentUser the currentUser to set
+ */
+ public void setCurrentUser(User currentUser) {
+ this.currentUser = currentUser;
+ }
+
+
+}
+
diff --git a/JSF_WBD/src/java/login.java b/JSF_WBD/src/java/login.java
new file mode 100644
index 00000000..c4d3e242
--- /dev/null
+++ b/JSF_WBD/src/java/login.java
@@ -0,0 +1,236 @@
+
+import com.mysql.jdbc.Connection;
+import com.mysql.jdbc.Statement;
+import static com.sun.faces.facelets.util.Path.context;
+import java.io.IOException;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ApplicationScoped;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+/**
+ *
+ * @author Mochamad Lutfi F
+ */
+@ManagedBean(name = "login",eager=true)
+@ApplicationScoped
+public class login
+{
+ private String username;
+ private String password;
+ private String role;
+ private boolean isUsernameValid;
+ private boolean isPasswordValid;
+ private boolean validationComplete = false;
+ private String dbuser;
+ private String dbpassword;
+ private String dbrole;
+ private String SQLuser;
+ private static final String COOKIE_NAME = "Cookie";
+ private static final int COOKIE_MAX_AGE = 24*60*7;
+
+ private User currentUser = new User();
+
+ Connection con = null;
+ Statement stmt = null;
+ ResultSet rs;
+
+ /** * @return the username */
+ public String getUsername()
+ { return username; }
+ /** * @param username * the username to set */
+ public void setUsername(String username)
+ { this.username = username; }
+ /** * @return the password */
+ public String getPassword()
+ { return password; }
+ /** * @param password * the password to set */
+ public void setPassword(String password)
+ { this.password = password; }
+ /** * @return the isUsernameValid */
+ public String getRole(){
+ return role;
+ }
+ public String getDBRole(){
+ return dbrole;
+ }
+ public void setRole(String role)
+ {
+ this.role = role;
+ }
+
+ public boolean isAdmin(){
+ return dbrole.equals("admin");
+ }
+
+ public boolean isEditor(){
+ return dbrole.equals("editor");
+ }
+
+ public boolean isOwner(){
+ return dbrole.equals("owner");
+ }
+
+ public boolean isCookieSet(Cookie cookie){
+ if(cookie.getName() == COOKIE_NAME)
+ return true;
+ else
+ return false;
+ }
+
+ public void setCookie() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
+ Cookie cookie = null;
+
+ Cookie[] userCookies = request.getCookies();
+ if (userCookies != null && userCookies.length > 0) {
+ for (Cookie c : userCookies) {
+ if (c.getName().equals(COOKIE_NAME)) {
+ cookie = c;
+ break;
+ }
+ }
+ }
+
+ // update cookie if it already exist
+ if (cookie != null) {
+ cookie.setValue(currentUser.getUsername());
+ }
+ else {
+ cookie = new Cookie(COOKIE_NAME, currentUser.getUsername());
+ cookie.setPath(request.getContextPath());
+ }
+ cookie.setMaxAge(COOKIE_MAX_AGE);
+
+ HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
+ response.addCookie(cookie);
+ }
+
+ public Cookie getCookie() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
+ Cookie cookie = null;
+
+ Cookie[] userCookies = request.getCookies();
+ if (userCookies != null && userCookies.length > 0) {
+ for (Cookie c : userCookies) {
+ if (c.getName().equals(COOKIE_NAME)) {
+ return c;
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+
+ public boolean getIsUsernameValid()
+ { return isUsernameValid; }
+ /** * @param isUsernameValid the isUsernameValid to set */
+ public void setUsernameValid(boolean isUsernameValid)
+ { this.isUsernameValid = isUsernameValid; }
+ /** * @return the isPasswordValid */
+ public boolean getIsPasswordValid()
+ { return isPasswordValid; }
+ /** * @param isPasswordValid the isPasswordValid to set */
+ public void setPasswordValid(boolean isPasswordValid)
+ { this.isPasswordValid = isPasswordValid; }
+ /** * @return the validationComplete */
+ public boolean isValidationComplete()
+ { if(validationComplete==true){
+ return true;
+ }
+ else
+ return false;
+ }
+ /** * @param validationComplete the validationComplete to set */
+ public void setValidationComplete(boolean validationComplete)
+ { this.validationComplete = validationComplete; }
+
+ private void SetupDB() throws ClassNotFoundException, SQLException{
+ String host = "jdbc:mysql://localhost:3306/simple_blog_java?zeroDateTimeBehavior=convertToNull";
+ String user = "root";
+ String pwd = "";
+ try {
+ Class.forName("com.mysql.jdbc.Driver").newInstance();
+ } catch (InstantiationException | IllegalAccessException ex) {
+ Logger.getLogger(Manager.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ con = (Connection) DriverManager.getConnection(host, user, pwd);
+ stmt = (Statement) con.createStatement();
+ }
+
+ public void dbData(String user)
+ {
+ try
+ {
+ SetupDB();
+ SQLuser="Select * from tb_user where username like ('" + user +"')";
+ rs = stmt.executeQuery(SQLuser);
+ rs.next();
+ dbuser = rs.getString(2).toString();
+ dbpassword = rs.getString(3).toString();
+ dbrole = rs.getString(5).toString();
+ }
+ catch(ClassNotFoundException | SQLException ex)
+ {
+
+ }
+ }
+
+ public String checkValidity() throws IOException, ClassNotFoundException, SQLException
+ {
+ dbData(username);
+ if(username.equalsIgnoreCase(dbuser))
+ {
+ if(password.equals(dbpassword))
+ {
+ validationComplete = true;
+ setCookie();
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
+ response.sendRedirect("home.xhtml");
+ return "success";
+ }
+ else
+ {
+ // validationComplete = true;
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ facesContext.addMessage(null, new FacesMessage("Username atau Password salah!"));
+ return "";
+ }
+ }
+ else
+ {
+ //validationComplete = true;
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ facesContext.addMessage(null, new FacesMessage("Username atau Password salah!"));
+ return "";}
+ }
+
+ public void logout() throws IOException {
+ dbrole = "null";
+ ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
+ externalContext.invalidateSession();
+ externalContext.redirect(externalContext.getRequestContextPath() + "/loginuser.xhtml");
+ }
+
+}
diff --git a/JSF_WBD/web/META-INF/context.xml b/JSF_WBD/web/META-INF/context.xml
new file mode 100644
index 00000000..f3e1dd8b
--- /dev/null
+++ b/JSF_WBD/web/META-INF/context.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/JSF_WBD/web/WEB-INF/newjsf.xhtml b/JSF_WBD/web/WEB-INF/newjsf.xhtml
new file mode 100644
index 00000000..c70ee58c
--- /dev/null
+++ b/JSF_WBD/web/WEB-INF/newjsf.xhtml
@@ -0,0 +1,12 @@
+
+
+
+
+ Facelet Title
+
+
+ Hello from Facelets
+
+
+
diff --git a/JSF_WBD/web/WEB-INF/web.xml b/JSF_WBD/web/WEB-INF/web.xml
new file mode 100644
index 00000000..f4047a8b
--- /dev/null
+++ b/JSF_WBD/web/WEB-INF/web.xml
@@ -0,0 +1,28 @@
+
+
+
+ javax.faces.PROJECT_STAGE
+ Development
+
+
+ javax.faces.DEFAULT_SUFFIX
+ .xhtml
+
+
+ Faces Servlet
+ javax.faces.webapp.FacesServlet
+ 1
+
+
+ Faces Servlet
+ *.xhtml
+
+
+
+ 30
+
+
+
+ index.xhtml
+
+
diff --git a/JSF_WBD/web/assets/css/screen.css b/JSF_WBD/web/assets/css/screen.css
new file mode 100644
index 00000000..55534c69
--- /dev/null
+++ b/JSF_WBD/web/assets/css/screen.css
@@ -0,0 +1,1022 @@
+@import url(http://fonts.googleapis.com/css?family=Open+Sans);
+@import url(http://fonts.googleapis.com/css?family=Questrial);
+
+/* Reset & Basics (Inspired by E. Meyers)
+================================================== */
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, address, cite, code, em, img, small, strong, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, embed, figure, figcaption, footer, header, hgroup, menu, nav, section, summary, time, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline; }
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, time, nav, section {
+ display: block; }
+html, body, .wrapper {
+ min-height: 100%;
+}
+
+
+/* Body
+================================================== */
+html, body {
+ height: 100%;
+}
+.wrapper {
+ min-height: 100%;
+}
+body {
+ overflow-x: hidden;
+ font: 17px/28px ff-meta-serif-web-pro, "Georgia", serif;
+ color: #333;
+ background: #fff;
+}
+
+
+/* Typography
+================================================== */
+h1, h2, h3, h4, h5, h6 {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-weight: normal;
+ text-transform: uppercase;
+ font-weight: 700;
+ color: #000;
+ text-rendering: optimizeLegibility;
+}
+
+h1 {
+ font-size: 50px;
+ padding-bottom: 30px;
+}
+
+h2 {
+ font-size: 45px;
+ padding-bottom: 25px;
+}
+
+h3 {
+ font-size: 40px;
+ padding-bottom: 20px;
+}
+
+h4 {
+ font-size: 35px;
+ padding-bottom: 15px;
+}
+
+h5 {
+ font-size: 30px;
+ padding-bottom: 10px;
+}
+
+h6 {
+ font-size: 45px;
+ padding-bottom: 25px;
+ padding-top: 10%;
+}
+
+.judul {
+ font-size: 45px;
+ padding-bottom: 10px;
+ font-family: 'Questrial', sans-serif;
+}
+
+.isi {
+ font-size: 28px;
+ font-family: Georgia,Cambria,"Times New Roman",Times,serif;
+ text-align: justify;
+}
+
+p {
+ margin: 0 0 28px 0;
+}
+
+strong {
+ font-weight: bold;
+}
+em {
+ font-style: italic;
+}
+sup {
+ line-height: 0;
+}
+
+small {
+ font-size: 70%;
+}
+
+cite {
+ font-size: 80%;
+ font-style: italic;
+ }
+
+/* Teaser
+================================================== */
+
+header#teaser h1 {
+ text-transform: none !important;
+ color: #333;
+ font-size: 28px !important;
+ font-weight: 300 !important;
+}
+
+
+/* Links
+================================================== */
+a {
+ color: #F40034;
+ text-decoration: none;
+ -webkit-transition: color .2s ease-in-out;
+ -moz-transition: color .2s ease-in-out;
+ transition: color .2s ease-in-out;
+}
+a:hover {
+ color: #F40034;
+}
+
+/* Layout
+================================================== */
+/* White container that is the "page" */
+.wrapper {
+ max-width: 1500px;
+ margin: 0 auto;
+}
+
+/* Containers to keep content to a set width */
+.nav,
+.nav2,
+.art-header-inner,
+.footer,
+.art-list,
+.abt,
+.fourohfour {
+ width: 980px;
+}
+.nav,
+.nav2,
+.art-body-inner,
+.footer,
+.art-list,
+.abt,
+.fourohfour {
+ position: relative;
+ margin: 0 auto;
+}
+
+/* Nav
+================================================== */
+.nav {
+ top: 0;
+ left: 0%;
+ height: 70px;
+ padding-top: 40px;
+ margin-left: 0px; /* Half width of nav */
+ /* border-bottom: 1px solid #333; */
+ z-index: 100;
+ width: 100%;
+ background: rgba(190, 190, 190, 1);
+ position: fixed;
+}
+.nav.fixed {
+ position: fixed;
+}
+#logo {
+ float: left;
+ margin-left: 5%;
+}
+.nav-primary {
+ float: right;
+ margin-right: 5%;
+}
+.nav-primary li {
+ display: inline-block;
+ margin-left: 10px;
+ font-weight: 500;
+}
+#logo h1,
+.nav-primary li,
+.nav-primary li a {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-weight: 700;
+ font-size: 13px;
+ line-height: 30px;
+ color: #000;
+ text-transform: uppercase;
+}
+
+#logo h1 {
+ height: 30px;
+ margin-left: 0px;
+ letter-spacing: 1px;
+ font-family: 'Questrial', sans-serif;
+ font-size: 30px;
+}
+
+#logo h1 span{
+ color: #F40034 !important;
+}
+
+.nav li:first-child {
+ margin-left: 0; /* Remove left margin from the first nav li */
+}
+
+/* Nav2
+================================================== */
+.nav2 {
+ top: 0;
+ left: 0%;
+ height: 70px;
+ padding-top: 40px;
+ margin-left: 0px; /* Half width of nav */
+ /* border-bottom: 1px solid #333; */
+ z-index: 100;
+ width: 100%;
+ background: rgba(190, 190, 190, 1);
+ position: fixed;
+}
+.nav2.fixed {
+ position: fixed;
+}
+#logo {
+ float: left;
+ margin-left: 10%;
+}
+.nav2-primary {
+ float: right;
+ left: 85%;
+ border: 1px solid;
+ border-radius: 6px;
+ position: fixed;
+}
+.nav2-primary li {
+ display: inline-block;
+ margin-left: 10px;
+ font-weight: 500;
+ width: 120px;
+}
+#logo h1,
+.nav2-primary li,
+.nav2-primary li a {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-weight: 700;
+ font-size: 13px;
+ line-height: 30px;
+ color: #000;
+ text-transform: uppercase;
+ margin-left: 5%;
+}
+
+#logo h1 {
+ height: 30px;
+ margin-left: 0px;
+ letter-spacing: 1px;
+ font-family: 'Questrial', sans-serif;
+ font-size: 30px;
+}
+
+#logo h1 span{
+ color: #F40034 !important;
+}
+
+.nav2 li:first-child {
+ margin-left: 0; /* Remove left margin from the first nav li */
+}
+
+/* Home Page
+================================================== */
+
+div#home {}
+
+#home > div.cover {
+ max-width: 980px;
+ margin: 0px auto;
+ /*padding-top: 110px;*/
+}
+
+div.cover {
+}
+
+div.cover > img {
+ width: 100%;
+ height: 100%;
+}
+
+
+/* Article
+================================================== */
+.art {
+ margin-top: -131px;
+}
+/* Header */
+.art-header {
+ height: 500px;
+ /* Background image is defined in the post */
+ background-position: top center;
+ background-attachment: fixed;
+ overflow: hidden;
+ padding-top: 230px;
+}
+/* Contains the time, title and subtitle for an article */
+.art-header-inner {
+ position: relative;
+ top: 70px;
+ left: 50%;
+ margin-left: -490px;
+}
+.art-time,
+.art-title,
+.art-subtitle {
+ text-align: center;
+ text-transform: uppercase;
+}
+.art-time {
+ font-size: 14px;
+ line-height: 1.8;
+ letter-spacing: 4px;
+ padding-top: 10%;
+}
+.art-title {
+ font-size: 100px;
+ line-height: .9;
+ letter-spacing: -2px;
+ width: 100%;
+ padding-top: 1%;
+}
+.art-subtitle {
+ margin-top: 4px;
+ font-size: 14px;
+ line-height: 1.3;
+ letter-spacing: 4px;
+}
+
+/* If small header, make few adjustments */
+.small .art-title {
+ font-size: 70px;
+ line-height: 65px;
+}
+.small.art-header-inner {
+ top: 320px;
+}
+
+/* Body */
+.art-body {
+ position: relative;
+ width: 100%;
+ background: #fff;
+ z-index: 50;
+ -webkit-box-shadow: 0 -3px 3px rgba(0,0,0,.2);
+ -moz-box-shadow: 0 -3px 3px rgba(0,0,0,.2);
+ box-shadow: 0 -3px 3px rgba(0,0,0,.2);
+}
+.art-body-inner {
+ font-family: Georgia,Cambria,"Times New Roman",Times,serif;
+ max-width: 640px;
+ padding: 80px 0 50px;
+ letter-spacing: 0.01rem;
+ font-weight: 400;
+ font-style: normal;
+ font-size: 21px;
+ line-height: 1.5;
+ text-align: justify;
+}
+.art-body-inner a:hover {
+ border-bottom: 1px solid #F40034;
+ padding-bottom:2px;
+}
+.art-body-inner ul,
+.art-body-inner ol { /* For lists in the article body */
+ margin-bottom: 26px;
+}
+.art-body-inner ul li {
+ list-style: disc;
+}
+
+.art-body-inner mark {
+ background-color: #fdffb6;
+ padding: 2px;
+ -webkit-box-shadow: #fdffb6 0 0 5px;
+ -moz-box-shadow: #fdffb6 0 0 5px;
+ box-shadow: #fdffb6 0 0 5px;
+}
+
+.art-body-inner blockquote {
+ font-size: 16px;
+ background: #f9f9f9;
+ border-left: 10px solid #ccc;
+ margin: 1.5em 10px;
+ padding: 0.5em 10px;
+ quotes: "\201C""\201D""\2018""\2019";
+}
+
+.art-body-inner blockquote p:first-child:before {
+ color: #ccc;
+ content: "“";
+ font-size: 4em;
+ line-height: 0.1em;
+ margin-right: 0.25em;
+ vertical-align: -0.4em;
+}
+
+.art-body-inner blockquote p {
+ margin-bottom: 1.5em;
+}
+
+.art-body-inner blockquote p:last-child {
+ margin-bottom: 0;
+}
+
+
+.dropcap { /* First character on articles */
+ float: left;
+ margin: 47px 10px 20px 0;
+ font-size: 100px;
+ line-height: 0;
+}
+.art-subhead { /* Subheads are used to break up sections of an article */
+ margin: 60px 0 15px;
+ font-size: 20px;
+ line-height: 28px;
+ letter-spacing: 3px;
+}
+.callout { /* Callouts are like large pullquotes */
+ font-weight: bold;
+}
+.art-body-inner img {
+ max-width: 100%;
+ max-height: 600px;
+ margin-bottom: 26px;
+}
+.art-body-inner img.center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.art-body-inner .art-reference {
+ font-size: 80%;
+ color: #999;
+ margin-top: 50px;
+}
+
+/* For simple, white background posts */
+.simple .art-body {
+ background: none;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+
+/* List of Articles
+================================================== */
+.art-list {
+ padding: 120px 0 0;
+}
+.art-list-body {
+ position: relative;
+ overflow: hidden;
+ float: left;
+ width: 100%;
+}
+.art-list-item {
+ padding: 40px 0;
+ list-style: none;
+ overflow: hidden;
+ border-bottom: 1px solid #ccc;
+}
+.art-list-item:last-child {
+ border-bottom: none;
+}
+.art-list-title {
+ font-size: 26px;
+ line-height: 26px;
+ font-weight: 700;
+ padding-left: 20%;
+}
+.art-list-item-title-and-time {
+ float: left;
+ width: 60%;
+ margin-bottom: 10px;
+}
+.art-list-time {
+ float: left;
+ font-size: 12px;
+ line-height: 20px;
+ letter-spacing: 2px;
+ text-transform: uppercase;
+ text-align: right;
+ color: #999;
+ margin-left: 34%;
+ margin-right: 10%;
+}
+.art-list-title a {
+ color: #000;
+ -webkit-transition: font-size 1s;
+ transition: font-size 1s;
+}
+.art-list-title a:hover {
+ color: #F40034;
+ font-size: 30px;
+}
+.art-list-item p {
+ width: 65%;
+ float: left;
+ margin-left: 20%;
+ margin-bottom: 10px;
+ font-size: 16px;
+ line-height: 24px;
+}
+
+
+/* Footer
+================================================== */
+.footer {
+ padding: 30px 0 40px;
+ overflow: hidden;
+ border-top: 1px solid #ccc;
+}
+.footer,
+.footer a {
+ font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif;
+ font-size: 13px;
+ text-transform: uppercase;
+ color: #666666;
+}
+
+.btt {
+ border: 1px solid;
+ border-radius: 6px;
+ padding: 5px;
+}
+.footer a:hover {
+ color: #000;
+}
+.back-to-top,
+.footer-nav,
+.offsite-links {
+ width: 25%;
+ float: left;
+}
+.psi {
+ width: 50%;
+ float:left;
+ text-align: center;
+}
+.footer-nav {
+ text-align: center;
+}
+.offsite-links {
+ text-align: right;
+}
+.footer .twitter-link:hover {
+ color: #0084B4;
+}
+.footer .instagram-link:hover {
+ color: #3F729B;
+}
+.footer .github-link:hover {
+ color: #c5376d;
+}
+.footer .caffein8-link:hover{
+ color: black;
+}
+.footer .rss-link:hover {
+ color: #e85d24;
+}
+/* Remove prev & next links on loop */
+.art-list + .footer .footer-nav,
+.abt + .footer .footer-nav {
+ text-indent: -9999px;
+ text-align: left;
+}
+
+
+/* White Reverse Theme
+================================================== */
+/* Nav */
+.nav.white {
+ border-bottom-color: #fff;
+ border-bottom-color: rgba(255,255,255,.3);
+}
+.nav.white li a,
+.nav.white li,
+.nav.white #logo h1 {
+ color: #fff;
+ text-shadow: 0 0 8px rgba(0,0,0,.5);
+}
+.nav.white #logo h1 {
+ background-position: top center;
+}
+
+nav.pagination{
+ text-align: right;
+ padding-bottom: 25px;
+}
+/* Art header */
+.art-header.white {
+ background-color: #111;
+}
+.art-header.white .art-time,
+.art-header.white .art-title,
+.art-header.white .art-subtitle {
+ color: #fff;
+ text-shadow: 0 0 8px rgba(0,0,0,.5);
+}
+
+/* Nav2 */
+.nav2.white {
+ border-bottom-color: #fff;
+ border-bottom-color: rgba(255,255,255,.3);
+}
+.nav2.white li a,
+.nav2.white li,
+.nav2.white #logo h1 {
+ color: #fff;
+ text-shadow: 0 0 8px rgba(0,0,0,.5);
+}
+.nav2.white #logo h1 {
+ background-position: top center;
+}
+
+
+/* About page
+================================================== */
+.abt {
+ padding: 200px 0 100px;
+ list-style: none;
+}
+.abt .abt-header {
+ font-size: 140px;
+ line-height: 1;
+ text-transform: none;
+}
+.abt .abt-subheader {
+ font-size: 24px;
+ font-style: italic;
+ text-transform: none;
+ color: #777;
+}
+.abt-body {
+ -moz-column-count: 2;
+ -moz-column-gap: 20px;
+ -webkit-column-count: 2;
+ -webkit-column-gap: 20px;
+ margin-bottom: 28px;
+}
+.abt-signoff {
+ line-height: 1.3;
+ font-style: italic;
+ color: #777;
+}
+
+/* 404 page
+================================================== */
+.fourohfour {
+ padding: 240px 0 100px;
+ text-align: center;
+}
+
+/* Code
+================================================== */
+
+code, tt {
+background: #ededee;
+color: #3C4043;
+font-size: 90%;
+padding: 1px 3px;
+}
+
+pre {
+ width: 92%;
+ overflow: auto;
+ margin: 2rem 0;
+ padding: 1rem 0.8rem 1rem 1.2rem;
+ color: #3f3b36;
+ border: 1px solid #ccc;
+ border-left: 1rem solid #ccc;
+ font: lighter 1.2rem/2rem monospace;
+ background: url(/assets/img/pre.png) repeat 0 -0.9rem;
+ background-size: 1px 4rem;
+}
+
+pre code, tt {
+font-size: inherit;
+white-space: -moz-pre-wrap;
+white-space: pre-wrap;
+background: transparent;
+border: none;
+padding: 0;
+}
+
+
+.gist {
+ font-size: 14px;
+}
+
+
+/* Responsive
+================================================== */
+@media only screen and (max-width: 1080px) {
+ /* Set all of the 980 containers to flexible width */
+ .nav,
+ .nav2,
+ .art-body-inner,
+ .art-header-inner,
+ .footer,
+ .art-list,
+ .abt,
+ .fourohfour {
+ width: 90%;
+ }
+ .nav,
+ .nav2,
+ .art-header-inner {
+ margin-left: -45%;
+ }
+}
+
+@media only screen and (max-width: 1024px) {
+ /* Everything becomes scrolling and non-fading */
+ .nav,
+ .nav2,
+ .nav.fixed,
+ .nav2.fixed {
+ position: relative;
+ opacity: 1 !important; /* Important to override JS values */
+ display: inline-block;
+ }
+ .art-header-inner {
+ position: relative;
+ top: 0 !important; /* Important to override JS values */
+ margin-top: 240px !important; /* Important to override JS values */
+ opacity: 1 !important; /* Important to override JS values */
+ }
+ /* Articles no longer have fixed heights */
+ .art-header {
+ height: auto;
+ padding-bottom: 100px;
+ background-size: cover !important;
+ background-attachment: scroll;
+ }
+ /* Remove bottom space out if articles doesn't have a background */
+ .simple .art-header {
+ padding-bottom: 0;
+ }
+ .art-list {
+ padding-top: 0;
+ }
+ .abt {
+ padding: 40px 0;
+ }
+ .fourohfour {
+ padding: 80px 0 60px;
+ }
+}
+
+@media only screen and (max-width: 780px) {
+ .art-body-inner ul,
+ .art-body-inner ol {
+ margin-left: 20px;
+ }
+ .art-title {
+ letter-spacing: 0;
+ }
+ .art-subtitle,
+ .art-time {
+ font-size: 12px;
+ }
+ .nav,
+ .nav2 {
+ padding-top: 25px;
+ height: 55px;
+ }
+ .art-list-item-title-and-time,
+ .art-list-item p {
+ float: none;
+ width: auto;
+ margin-left: 0;
+ }
+ .abt-body {
+ -moz-column-count: 1;
+ -webkit-column-count: 1;
+ }
+}
+
+@media only screen and (max-width: 500px) {
+ .nav-primary li {
+ margin-left: 10px;
+ }
+ .nav #logo h1 {
+ font-size: 16px;
+ letter-spacing: -1px;
+ }
+ .nav li a {
+ font-size: 12px;
+ }
+ .art-header {
+ padding-bottom: 50px;
+ }
+ .art-header-inner {
+ margin-top: 190px !important;
+ }
+ .art-body-inner {
+ padding-top: 30px;
+ }
+ body {
+ font-size: 15px;
+ line-height: 24px;
+ }
+ p {
+ margin-bottom: 24px;
+ }
+ .footer {
+ padding: 10px 0 20px;
+ }
+ .back-to-top,
+ .footer-nav {
+ width: 10%;
+ }
+ .back-to-top {
+ text-align: left;
+ }
+ .footer-nav {
+ text-align: right;
+ }
+ .offsite-links {
+ float: left;
+ width: 100%;
+ text-align: left;
+ }
+ .offsite-links a {
+ font-size: 12px;
+ }
+ .art-list + .footer .footer-nav {
+ display: none;
+ }
+ .abt .abt-header {
+ font-size: 80px;
+ }
+ .abt .abt-subheader {
+ font-size: 18px;
+ }
+}
+
+
+/* Misc
+================================================== */
+::selection {
+ background: #000;
+ color: #fff;
+}
+::-moz-selection {
+ background: #000;
+ color: #fff;
+}
+img.left {
+ float: left;
+ margin-right: 20px;
+}
+img.right {
+ float: right;
+ margin-left: 20px;
+}
+/* Clearfixing pile */
+.nav:before,
+.nav2:before,
+.art-body-inner:before,
+.footer:before,
+.art-list:before {
+ content:"";
+ display:table;
+}
+.nav:after,
+.nav2:after,
+.art-body-inner:after,
+.footer:after,
+.art-list:after {
+ clear:both;
+}
+.nav,
+.nav2,
+.art-body-inner,
+.footer,
+.art-list {
+ zoom:1; /* For IE 6/7 (trigger hasLayout) */
+}
+
+
+@-webkit-keyframes le-fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@-moz-keyframes le-fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+.art-header-inner {
+ -webkit-animation: le-fade .5s 0 1 ease-out;
+ -moz-animation: le-fade .5s 0 1 ease-out;
+}
+
+.art-list,
+.nav,
+.nav2,
+.abt,
+.art-body {
+ -webkit-animation: le-fade .5s 0s 1 ease-out;
+ -moz-animation: le-fade .5s 0s 1 ease-out;
+}
+
+hr.featured-article {
+ padding: 0;
+ border: none;
+ border-top: medium double #bbb;
+ color: #bbb;
+ text-align: center;
+}
+hr.featured-article:after {
+ content: "✭ Featured Article ✭";
+ display: inline-block;
+ position: relative;
+ top: -0.8em;
+ font-size: 1.2em;
+ padding: 0 0.6em;
+ background: white;
+}
+
+/* FORM */
+
+#contact-area {
+ width: 600px;
+ margin-top: 25px;
+}
+
+#contact-area input, #contact-area textarea {
+ padding: 5px;
+ width: 471px;
+ font-family: Helvetica, sans-serif;
+ margin: 0px 0px 10px 0px;
+ border: 2px solid #ccc;
+}
+
+#contact-area textarea {
+ height: 90px;
+}
+
+#contact-area textarea:focus, #contact-area input:focus {
+ border: 2px solid #900;
+}
+
+#contact-area input.submit-button {
+ width: 100px;
+}
+
+label {
+ float: left;
+ text-align: right;
+ margin-right: 15px;
+ width: 100px;
+ padding-top: 5px;
+}
+
+/* TAMBAHAN SENDIRI */
+
+.background {
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 100%;
+}
+
+/* DATA TABLE */
+
+.order-table{
+ border-collapse:collapse;
+}
+
+.order-table-header{
+ text-align:center;
+ background:none repeat scroll 0 0 #E5E5E5;
+ border-bottom:1px solid #BBBBBB;
+ padding:16px;
+}
+
+.order-table-odd-row{
+ text-align:center;
+ background:none repeat scroll 0 0 #FFFFFFF;
+ border-top:1px solid #BBBBBB;
+}
+
+.order-table-even-row{
+ text-align:center;
+ background:none repeat scroll 0 0 #F9F9F9;
+ border-top:1px solid #BBBBBB;
+}
\ No newline at end of file
diff --git a/JSF_WBD/web/assets/img/.DS_Store b/JSF_WBD/web/assets/img/.DS_Store
new file mode 100644
index 00000000..5008ddfc
Binary files /dev/null and b/JSF_WBD/web/assets/img/.DS_Store differ
diff --git a/JSF_WBD/web/assets/img/background.jpg b/JSF_WBD/web/assets/img/background.jpg
new file mode 100644
index 00000000..43622987
Binary files /dev/null and b/JSF_WBD/web/assets/img/background.jpg differ
diff --git a/JSF_WBD/web/assets/img/favicon.ico b/JSF_WBD/web/assets/img/favicon.ico
new file mode 100644
index 00000000..40b40ed3
Binary files /dev/null and b/JSF_WBD/web/assets/img/favicon.ico differ
diff --git a/JSF_WBD/web/assets/img/logo.png b/JSF_WBD/web/assets/img/logo.png
new file mode 100644
index 00000000..a2f87d46
Binary files /dev/null and b/JSF_WBD/web/assets/img/logo.png differ
diff --git a/JSF_WBD/web/assets/img/logo2.png b/JSF_WBD/web/assets/img/logo2.png
new file mode 100644
index 00000000..180eabd6
Binary files /dev/null and b/JSF_WBD/web/assets/img/logo2.png differ
diff --git a/JSF_WBD/web/assets/img/pre.png b/JSF_WBD/web/assets/img/pre.png
new file mode 100644
index 00000000..7f48517b
Binary files /dev/null and b/JSF_WBD/web/assets/img/pre.png differ
diff --git a/JSF_WBD/web/assets/js/app.js b/JSF_WBD/web/assets/js/app.js
new file mode 100644
index 00000000..66276cd1
--- /dev/null
+++ b/JSF_WBD/web/assets/js/app.js
@@ -0,0 +1,144 @@
+var isMobile;
+
+// Identify if visitor on mobile with lame sniffing to remove parallaxing title
+if( navigator.userAgent.match(/Android/i) ||
+ navigator.userAgent.match(/webOS/i) ||
+ navigator.userAgent.match(/iPhone/i) ||
+ navigator.userAgent.match(/iPod/i) ||
+ navigator.userAgent.match(/iPad/i) ||
+ navigator.userAgent.match(/BlackBerry/)
+){
+ isMobile = true;
+}
+
+$(document).ready(function() {
+
+ // Global vars
+ var $artHeaderInner = $('.art-header-inner');
+ var $artHeader = $('.art-header');
+ var $artTitle = $('.art-title');
+ var $artSubtitle = $('.art-subtitle');
+ var $artTime = $('.art-time');
+ var artTitleFontSize = parseInt($artTitle.css('font-size'));
+ var $nav = $('.nav');
+ var windowScroll;
+
+ // Apply Fittext to article titles to make it scale responsively in a smooth fashion
+ $artTitle.fitText(1, { minFontSize: '34px' });
+
+ // Identify if visitor has a large enough viewport for parallaxing title
+ function isLargeViewport() {
+ if($nav.css('position') == "relative") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ // If large viewport and not mobile, parallax the title
+ if(!isMobile) {
+ $(window).scroll(function() {
+ if(isLargeViewport()) {
+ slidingTitle();
+ }
+ });
+ }
+
+ // Window gets large enough, need to recalc all parallaxing title values
+ $(window).resize(function() {
+ if(isLargeViewport()) {
+ slidingTitle();
+ }
+ });
+
+ // Functional parallaxing calculations
+ function slidingTitle() {
+ //Get scroll position of window
+ windowScroll = $(this).scrollTop();
+
+ //Slow scroll of .art-header-inner scroll and fade it out
+ $artHeaderInner.css({
+ 'margin-top' : -(windowScroll/3)+"px",
+ 'opacity' : 1-(windowScroll/550)
+ });
+
+ //Slowly parallax the background of .art-header
+ $artHeader.css({
+ 'background-position' : 'center ' + (-windowScroll/8)+"px"
+ });
+
+ //Fade the .nav out
+ $nav.css({
+ 'opacity' : 1-(windowScroll/400)
+ });
+ }
+
+ // Link to top of page without changing URL
+ $('.back-to-top a').click(function(e) {
+ e.preventDefault();
+ $(window).scrollTop(0);
+ })
+
+ // Cover image of the header
+ var $postImage = $('img[alt="cover"]');
+ if ( $postImage.length ) {
+ var postImageURL = $postImage.attr('src');
+ $('.art-header').css('background-image','url(' + postImageURL + ')');
+ $('.art-header').css('background-size','100%');
+
+ // Change color scheme to white
+ $('#logo h1').css('color','white');
+ $('.art-title').css('color','white');
+ $('.art-subtitle').css('color','white');
+ $('.art-time').css('color','white');
+ $('.nav-primary li a').css('color','white');
+
+ // Add Text Shadows
+ $('.art-title').css('text-shadow','3px 3px 0 rgba(0,0,0,0.1), -1px -1px 0 rgba(0,0,0,0.1), 1px -1px 0 rgba(0,0,0,0.1), -1px 1px 0 rgba(0,0,0,0.1), 1px 1px 0 rgba(0,0,0,0.1)');
+ $('.art-subtitle').css('text-shadow','3px 3px 0 rgba(0,0,0,0.1), -1px -1px 0 rgba(0,0,0,0.1), 1px -1px 0 rgba(0,0,0,0.1), -1px 1px 0 rgba(0,0,0,0.1), 1px 1px 0 rgba(0,0,0,0.1)');
+ $('.art-time').css('text-shadow','3px 3px 0 rgba(0,0,0,0.1), -1px -1px 0 rgba(0,0,0,0.1), 1px -1px 0 rgba(0,0,0,0.1), -1px 1px 0 rgba(0,0,0,0.1), 1px 1px 0 rgba(0,0,0,0.1)');
+
+ }
+ $postImage.remove();
+
+ // Subtitles
+ var $subtitle = $('span[id="subtitle"]');
+ if ( $subtitle.length ) {
+ var subtitleText = $('#subtitle').text();
+ $('.art-subtitle').html(subtitleText);
+
+ }
+ $subtitle.remove();
+
+ // Make punctuation smarter
+ jQuery.fn.smarten = (function() {
+
+ function smartenNode(node) {
+ if (node.nodeType === 3) {
+ node.data = node.data
+ .replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // Opening singles
+ .replace(/'/g, "\u2019") // Closing singles & apostrophes
+ .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201c") // Opening doubles
+ .replace(/"/g, "\u201d") // Closing doubles
+ .replace(/--/g, "\u2013") // En dashes
+ .replace(/---/g, "\u2014") // Em dashes
+ .replace(/\.{3}/g, "\u2026"); // Ellipsis
+ } else if (node.nodeType === 1) {
+ if (node = node.firstChild) do {
+ smartenNode(node);
+ } while (node = node.nextSibling);
+ }
+ }
+
+ return function() {
+ return this.each(function(){
+ smartenNode(this);
+ });
+ };
+
+ }());
+
+ // Instantiation
+ $('article').smarten();
+
+});
\ No newline at end of file
diff --git a/JSF_WBD/web/assets/js/fittext.js b/JSF_WBD/web/assets/js/fittext.js
new file mode 100644
index 00000000..035baa36
--- /dev/null
+++ b/JSF_WBD/web/assets/js/fittext.js
@@ -0,0 +1,46 @@
+/*global jQuery */
+/*!
+* FitText.js 1.0
+*
+* Copyright 2011, Dave Rupert http://daverupert.com
+* Released under the WTFPL license
+* http://sam.zoy.org/wtfpl/
+*
+* Date: Thu May 05 14:23:00 2011 -0600
+*/
+$(document).ready(function() {
+
+(function( $ ){
+
+ $.fn.fitText = function( kompressor, options ) {
+
+ // Setup options
+ var compressor = kompressor || 1,
+ settings = $.extend({
+ 'minFontSize' : Number.NEGATIVE_INFINITY,
+ 'maxFontSize' : Number.POSITIVE_INFINITY
+ }, options);
+
+ return this.each(function(){
+
+ // Store the object
+ var $this = $(this);
+
+ // Resizer() resizes items based on the object width divided by the compressor * 10
+ var resizer = function () {
+ $this.css('font-size', Math.max(Math.min($this.width() / (compressor*10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize)));
+ };
+
+ // Call once to set.
+ resizer();
+
+ // Call on resize. Opera debounces their resize by default.
+ $(window).on('resize', resizer);
+
+ });
+
+ };
+
+})( jQuery );
+
+});
\ No newline at end of file
diff --git a/JSF_WBD/web/assets/js/jquery.min.js b/JSF_WBD/web/assets/js/jquery.min.js
new file mode 100644
index 00000000..16ad06c5
--- /dev/null
+++ b/JSF_WBD/web/assets/js/jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.7.2 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q=""+"",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
+a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/ ]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
+.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/
+
+
diff --git a/JSF_WBD/web/index.xhtml b/JSF_WBD/web/index.xhtml
new file mode 100644
index 00000000..46f60915
--- /dev/null
+++ b/JSF_WBD/web/index.xhtml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
+ #{o.judul}
+
+
#{o.tanggal.toString()}
+
✭ Featured
+
+ #{o.konten} …
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/web/login.xhtml b/JSF_WBD/web/login.xhtml
new file mode 100644
index 00000000..d4ba1afe
--- /dev/null
+++ b/JSF_WBD/web/login.xhtml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Login
+
+
+
+
+
+
+
diff --git a/JSF_WBD/web/manageuser.xhtml b/JSF_WBD/web/manageuser.xhtml
new file mode 100644
index 00000000..461b5dde
--- /dev/null
+++ b/JSF_WBD/web/manageuser.xhtml
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Manage Users
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+ -
+
+
+
+
Users
+
+
+
+
+
+
+ ID
+
+ #{c.id}
+
+
+
+
+ Username
+
+ #{c.username}
+
+
+
+
+ Password
+
+ #{c.password}
+
+
+
+
+ Email
+
+ #{c.email}
+
+
+
+
+ Role
+
+ #{c.role}
+
+
+
+
+ Edit
+
+
+
+
+
+
+
+ Delete
+
+
+
+
+
+
+
+
Add New User
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bukan admin hayo
+
+
diff --git a/JSF_WBD/web/new_post.xhtml b/JSF_WBD/web/new_post.xhtml
new file mode 100644
index 00000000..7f08bec8
--- /dev/null
+++ b/JSF_WBD/web/new_post.xhtml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Add Post
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+ -
+
+
+
+
Tambah Post
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bukan admin/owner hayo
+
+
diff --git a/JSF_WBD/web/unpublished.xhtml b/JSF_WBD/web/unpublished.xhtml
new file mode 100644
index 00000000..cdd0eafc
--- /dev/null
+++ b/JSF_WBD/web/unpublished.xhtml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | Unpublished
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
+ #{o.judul}
+
+
#{o.tanggal.toString()}
+
✭ Featured
+
+ #{o.konten} …
+
+ Publish | Edit | Delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bukan admin/editor hayo
+
+
diff --git a/JSF_WBD/web/view_post.xhtml b/JSF_WBD/web/view_post.xhtml
new file mode 100644
index 00000000..645293eb
--- /dev/null
+++ b/JSF_WBD/web/view_post.xhtml
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | View Post
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
#{tempPostView.konten}
+
+
+
+
Komentar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{o.konten} …
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/JSF_WBD/web/view_post_2.xhtml b/JSF_WBD/web/view_post_2.xhtml
new file mode 100644
index 00000000..b81a2759
--- /dev/null
+++ b/JSF_WBD/web/view_post_2.xhtml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simple Blog | View Post
+
+
+
+
+
+
+ Simple- Blog
+
+
+
+
+
+
+
+
+
+
+
#{tempPostView.konten}
+
+
+
+
Komentar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{o.konten} …
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets-asli/.DS_Store b/assets-asli/.DS_Store
new file mode 100644
index 00000000..5008ddfc
Binary files /dev/null and b/assets-asli/.DS_Store differ
diff --git a/assets/css/screen.css b/assets-asli/css/screen.css
similarity index 99%
rename from assets/css/screen.css
rename to assets-asli/css/screen.css
index 1d8fdf3b..5a46c81d 100644
--- a/assets/css/screen.css
+++ b/assets-asli/css/screen.css
@@ -221,11 +221,10 @@ div.cover > img {
/* Article
================================================== */
.art {
- margin-top: -131px;
+ margin-top: -70px;
}
/* Header */
.art-header {
- height: 900px;
/* Background image is defined in the post */
background-position: top center;
background-attachment: fixed;
@@ -233,10 +232,10 @@ div.cover > img {
}
/* Contains the time, title and subtitle for an article */
.art-header-inner {
- position: fixed;
- top: 300px;
- left: 50%;
- margin-left: -490px;
+ position: relative;
+ margin-top: 250px;
+ margin-left: auto;
+ margin-right: auto;
}
.art-time,
.art-title,
diff --git a/assets-asli/img/favicon.ico b/assets-asli/img/favicon.ico
new file mode 100644
index 00000000..40b40ed3
Binary files /dev/null and b/assets-asli/img/favicon.ico differ
diff --git a/assets-asli/img/pre.png b/assets-asli/img/pre.png
new file mode 100644
index 00000000..7f48517b
Binary files /dev/null and b/assets-asli/img/pre.png differ
diff --git a/index.html b/index.html
deleted file mode 100644
index 07cff0ba..00000000
--- a/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Simple Blog
-
-
-
-
-
-
-
-
- Simple- Blog
-
-
-
-
-
-
-
-
-
-
-
15 Juli 2014
-
✭ Featured
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis repudiandae quae natus quos alias eos repellendus a obcaecati cupiditate similique quibusdam, atque omnis illum, minus ex dolorem facilis tempora deserunt! …
-
- Edit | Hapus
-
-
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis repudiandae quae natus quos alias eos repellendus a obcaecati cupiditate similique quibusdam, atque omnis illum, minus ex dolorem facilis tempora deserunt! …
-
- Edit | Hapus
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/new_post.html b/new_post.html
deleted file mode 100644
index fc4e18ee..00000000
--- a/new_post.html
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Simple Blog | Tambah Post
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/post.html b/post.html
deleted file mode 100644
index c0b6f9e6..00000000
--- a/post.html
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Simple Blog | Apa itu Simple Blog?
-
-
-
-
-
-
-
-
- Simple- Blog
-
-
-
-
-
-
-
-
-
-
-
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis aliquam minus consequuntur amet nulla eius, neque beatae, nostrum possimus, officiis eaque consectetur. Sequi sunt maiores dolore, illum quidem eos explicabo! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam consequuntur consequatur molestiae saepe sed, incidunt sunt inventore minima voluptatum adipisci hic, est ipsa iste. Nobis, aperiam provident quae. Reprehenderit, iste.
-
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores animi tenetur nam delectus eveniet iste non culpa laborum provident minima numquam excepturi rem commodi, officia accusamus eos voluptates obcaecati. Possimus?
-
-
-
-
Komentar
-
-
-
- Nama:
-
-
- Email:
-
-
- Komentar:
-
-
-
-
-
-
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis repudiandae quae natus quos alias eos repellendus a obcaecati cupiditate similique quibusdam, atque omnis illum, minus ex dolorem facilis tempora deserunt! …
-
-
-
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis repudiandae quae natus quos alias eos repellendus a obcaecati cupiditate similique quibusdam, atque omnis illum, minus ex dolorem facilis tempora deserunt! …
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/simple_blog_java.sql b/simple_blog_java.sql
new file mode 100644
index 00000000..f52fc723
--- /dev/null
+++ b/simple_blog_java.sql
@@ -0,0 +1,83 @@
+-- phpMyAdmin SQL Dump
+-- version 4.1.6
+-- http://www.phpmyadmin.net
+--
+-- Host: 127.0.0.1
+-- Generation Time: Dec 01, 2014 at 04:06 AM
+-- Server version: 5.6.16
+-- PHP Version: 5.5.9
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+
+--
+-- Database: `simple_blog_java`
+--
+CREATE DATABASE IF NOT EXISTS `simple_blog_java` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
+USE `simple_blog_java`;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `tb_cmt`
+--
+
+DROP TABLE IF EXISTS `tb_cmt`;
+CREATE TABLE IF NOT EXISTS `tb_cmt` (
+ `cid` bigint(20) NOT NULL AUTO_INCREMENT,
+ `pid` bigint(20) NOT NULL,
+ `name` text NOT NULL,
+ `email` text NOT NULL,
+ `ccontent` text NOT NULL,
+ `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`cid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
+
+--
+-- Dumping data for table `tb_cmt`
+--
+
+INSERT INTO `tb_cmt` (`cid`, `pid`, `name`, `email`, `ccontent`, `timestamp`) VALUES
+(1, 2, 'Tito', 'tito@tito.com', 'Ini komentar Tito', '2014-11-26 15:48:10'),
+(2, 2, 'Tito2', 'tito@tito.com2', 'Ini komentar Tito2', '2014-11-26 15:48:27'),
+(7, 2, 'nama3', 'email3', 'komen3', '2014-11-26 16:04:44'),
+(8, 2, 'nama4', 'email4', 'komen4', '2014-11-26 16:07:54'),
+(9, 6, 'Asri', 'Cantik', 'ini komentar asri\n', '2014-11-27 03:18:51');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `tb_post`
+--
+
+DROP TABLE IF EXISTS `tb_post`;
+CREATE TABLE IF NOT EXISTS `tb_post` (
+ `pid` bigint(20) NOT NULL AUTO_INCREMENT,
+ `pdate` date NOT NULL,
+ `ptitle` text NOT NULL,
+ `pcontent` text NOT NULL,
+ `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `isPublished` tinyint(1) NOT NULL,
+ PRIMARY KEY (`pid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
+
+--
+-- Dumping data for table `tb_post`
+--
+
+INSERT INTO `tb_post` (`pid`, `pdate`, `ptitle`, `pcontent`, `timestamp`, `isPublished`) VALUES
+(2, '2014-11-11', 'Post Kedua', 'Ini isi dari post kedua. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis repudiandae quae natus quos alias eos repellendus a obcaecati cupiditate similique quibusdam, atque omnis illum, minus ex dolorem facilis tempora deserunt!salaknfksdjcnskdjcsdcsdc', '2014-11-25 11:49:14', 1),
+(6, '2014-11-20', 'Post Keempat', 'Ini post keempat. syalalala ding dong', '2014-11-25 16:04:13', 1),
+(9, '2014-11-05', 'Ini gw tambahin', 'Syalalala ding dong', '2014-11-25 19:14:01', 0),
+(10, '2014-10-10', 'syala dirubah', 'asdadasdasdasdasdasddakc asdkbsdahkjcbasdkjchbsakdjhcbsakjdhcbaskdhjcbsakdjhcbsdkajhcbsakjdcsdc', '2014-11-25 19:54:17', 1),
+(11, '2014-08-08', 'Syalalala', 'eyeyeye', '2014-11-27 03:19:16', 1);
+
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;