Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/comments.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/comments.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/comments.css	(revision 28599)
@@ -0,0 +1,305 @@
+/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*//* COMMENTS ------------------------------------------------------------*/
+#comments-wrap {
+  padding-top: 40px;
+  margin-bottom: 60px;
+}
+#comments-wrap .heading {
+  margin-bottom: 10px;
+  padding-top: 0px;
+  padding-bottom: 10px;
+  border-top: 0px solid #444444;
+  border-bottom: 5px solid #444444;
+}
+#comments-wrap a {
+  text-decoration: none;
+}
+#comments-wrap .commentlist {
+  margin: 0 0 30px 0;
+  list-style-type: none;
+  font-size: 14px;
+  /* CHILDREN ------------------------------------------------------------*/
+
+  /* REPLY ------------------------------------------------------------*/
+
+  /* META ------------------------------------------------------------*/
+
+  /* COMMENTS PAGINATION ------------------------------------------------------------*/
+
+}
+#comments-wrap .commentlist .comment-body {
+  border-bottom: 1px solid #444444;
+  margin: 0 0 18px;
+  padding: 25px 0px 20px 0px;
+}
+#comments-wrap .commentlist > li:last-child {
+  border: none;
+  padding-top: 0px;
+}
+#comments-wrap .commentlist .v-card {
+  color: #ccc;
+}
+#comments-wrap .commentlist .comment .avatar {
+  float: right;
+  margin: 2px 15px 0 0;
+  height: 35px;
+  width: 35px;
+}
+#comments-wrap .commentlist .respond-title-wrap,
+#comments-wrap .commentlist .comment-title-wrap {
+  border-bottom: 1px solid #484848;
+  padding: 0 0 15px 0;
+  margin: 0 0 30px 0;
+}
+#comments-wrap .commentlist #respond-title,
+#comments-wrap .commentlist #comments,
+#comments-wrap .commentlist .add-comment-link {
+  font-size: 15px;
+  color: #2c2d31;
+  font-weight: bold;
+}
+#comments-wrap .commentlist .respond-caption {
+  font-size: 11px;
+}
+#comments-wrap .commentlist .add-comment-link a {
+  font-size: 12px;
+  padding: 0 15px 0 0;
+}
+#comments-wrap .commentlist .comment-body {
+  position: relative;
+  margin-bottom: 20px;
+}
+#comments-wrap .commentlist ul li {
+  padding: 0 0 0px 0;
+}
+#comments-wrap .commentlist ul li:first-child .comment-border {
+  border-bottom: 1px #ccc solid;
+  margin: 18px 0 0 0;
+  height: 18px;
+  width: 430px;
+}
+#comments-wrap .commentlist .comment p:last-child {
+  margin: 0;
+}
+#comments-wrap .commentlist .comment .children {
+  list-style-type: none;
+  margin-left: 13%;
+}
+#comments-wrap .commentlist .comment .children .comment-body {
+  border-bottom: 1px solid #444444;
+  padding-bottom: 20px;
+}
+#comments-wrap .commentlist .comment .children .comment-meta {
+  margin-left: 0px;
+  margin-bottom: 18px;
+}
+#comments-wrap .commentlist .comment .children .comment .avatar {
+  height: 35px;
+  width: 35px;
+}
+#comments-wrap .commentlist .comment .children li {
+  background: url(../img/reply.png) no-repeat 10px 40px;
+}
+#comments-wrap .commentlist .comment .children .comment-body {
+  margin: 20px 0 0 0px;
+}
+#comments-wrap .commentlist .nocomments {
+  text-align: center;
+  padding: 20px;
+}
+#comments-wrap .commentlist .comment-body ul {
+  list-style-type: disc;
+}
+#comments-wrap .commentlist .comment-body ol {
+  list-style-type: decimal;
+}
+#comments-wrap .commentlist .reply {
+  position: absolute;
+  right: 1px;
+  top: 1px;
+}
+#comments-wrap .commentlist .comment-reply-link-wrap .comment-reply-link {
+  color: #c95039;
+  font-size: 11px;
+}
+#comments-wrap .commentlist .comment-reply-link-wrap .comment-reply-link:hover {
+  color: #cb5432;
+}
+#comments-wrap .commentlist .comment-meta {
+  margin: 0 0 20px 0px;
+  color: #444444 -2221;
+  font-size: 11px;
+  position: relative;
+}
+#comments-wrap .commentlist .comment-author {
+  color: #444;
+  font-weight: bold;
+}
+#comments-wrap .commentlist .comment-author cite {
+  font-weight: bold;
+  font-style: normal;
+  color: #2C2D31;
+  margin: 0;
+  padding: 0;
+}
+#comments-wrap .commentlist .comment-author cite a {
+  padding: 0 15px 0 0;
+  color: #2C2D31;
+}
+#comments-wrap .commentlist .comments-pagination {
+  clear: both;
+  overflow: hidden;
+  padding: 20px 0;
+  position: relative;
+  font-size: 11px;
+  line-height: 14px;
+  margin-bottom: 10px;
+}
+#comments-wrap .commentlist .comments-pagination span,
+#comments-wrap .commentlist .comments-pagination a {
+  display: block;
+  float: left;
+  margin: 2px 2px 2px 0;
+  padding: 6px 9px 5px 9px;
+  text-decoration: none;
+  width: auto;
+  color: #fff;
+  background: #555;
+}
+#comments-wrap .commentlist .comments-pagination span:hover,
+#comments-wrap .commentlist .comments-pagination a:hover {
+  color: #fff;
+  background: #000000;
+}
+#comments-wrap .commentlist .comments-pagination .current {
+  padding: 6px 9px 5px 9px;
+  background: #000000;
+  color: #fff;
+}
+/* FORMS ------------------------------------------------------------*/
+#respond {
+  margin: 25px 0 0px 0px;
+}
+#respond .heading {
+  margin-bottom: 41px;
+  padding-top: 0px;
+  padding-bottom: 10px;
+  border-top: 0px solid #444444;
+  border-bottom: 5px solid #444444;
+}
+#respond #cancel-comment-reply-link {
+  display: block;
+  float: right;
+  color: #c95039;
+  text-decoration: none;
+  background: none;
+  padding: 3px 10px;
+  font-family: Helvetica, Arial, "sans-serif";
+  font-size: 12px;
+}
+#respond #cancel-comment-reply-link:hover {
+  text-decoration: underline;
+}
+#commentform,
+#contactForm {
+  margin-bottom: 70px;
+}
+#commentform .comment-notes,
+#contactForm .comment-notes {
+  margin-bottom: 30px;
+}
+#commentform .form-allowed-tags,
+#contactForm .form-allowed-tags {
+  margin-bottom: 20px;
+  font-size: 14px;
+  color: #444444;
+}
+#commentform input,
+#contactForm input,
+#commentform textarea,
+#contactForm textarea {
+  padding: 10px 15px;
+  background: #f1f1f1;
+  color: #484848;
+  border: 1px  solid #ccc;
+  font-size: 14px;
+  font-family: Helvetica, Arial;
+  line-height: 1.5em;
+  overflow: auto;
+}
+#commentform input:focus,
+#contactForm input:focus,
+#commentform textarea:focus,
+#contactForm textarea:focus {
+  background: #fff;
+  -webkit-box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
+  -moz-box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
+  -o-box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
+  box-shadow: 0px 0px 3px rgba(251, 228, 113, 0.4);
+}
+#commentform input[type="text"],
+#contactForm input[type="text"],
+#commentform input[type="password"],
+#contactForm input[type="password"] {
+  overflow: auto;
+  width: 50%;
+  margin-top: 10px;
+  margin-bottom: 10px;
+  overflow: hidden;
+}
+#commentform textarea,
+#contactForm textarea {
+  width: 93.1818%;
+  height: 230px;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+#commentform input[type="submit"],
+#contactForm input[type="submit"],
+#commentform input[type="button"],
+#contactForm input[type="button"] {
+  width: auto;
+  color: #444;
+  font-size: 14px;
+  background: #f3e4c8;
+  color: #cb5432;
+  padding: 10px 15px;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+  -webkit-transition: all 0.3s ease;
+  -moz-transition: all 0.3s ease;
+  -o-transition: all 0.3s ease;
+  transition: all 0.3s ease;
+  cursor: pointer;
+}
+#commentform input[type="submit"]:hover,
+#contactForm input[type="submit"]:hover,
+#commentform input[type="button"]:hover,
+#contactForm input[type="button"]:hover {
+  -webkit-transform: translate(0px, -5px);
+  -moz-transform: translate(0px, -5px);
+  -o-transform: translate(0px, -5px);
+  transform: translate(0px, -5px);
+}
+#commentform input#submit,
+#contactForm input#submit {
+  margin-top: 7px;
+}
+#commentform label,
+#contactForm label {
+  display: block;
+  margin-bottom: -10px;
+}
+#commentform p,
+#contactForm p {
+  margin-bottom: 10px;
+}
+#commentform #error,
+#contactForm #error {
+  margin-left: 10px;
+}
+#commentform #sent-form-msg,
+#contactForm #sent-form-msg {
+  padding: 5px 10px;
+  margin-bottom: 40px;
+  background: rgba(0, 0, 0, 0.1);
+  color: #444;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/elements.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/elements.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/elements.css	(revision 28599)
@@ -0,0 +1,414 @@
+/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*/.block-divider {
+  border-bottom: 1px solid #585246;
+  margin-bottom: 50px;
+  padding-bottom: 50px;
+}
+/* DROPCAP ------------------------------------------------------------*/
+.dropcap:first-letter {
+  font-size: 3.571em;
+  line-height: 0.76em;
+  padding: 0.2em 0.2em 0 0;
+  float: left;
+  display: block;
+  color: #585246;
+}
+.dropcap.dark:first-letter {
+  display: block;
+  float: left;
+  font-size: 30px;
+  line-height: 40px;
+  margin: 0 8px 0 0;
+  padding: 10px 10px;
+  background: #585246;
+  color: #f3e4c8;
+  border-radius: 5px;
+  -moz-border-radius: 5px;
+  -webkit-border-radius: 5px;
+}
+/* INFOBOXES ------------------------------------------------------------*/
+.infobox-info,
+.infobox-warning,
+.infobox-success,
+.infobox-error {
+  border: 1px solid;
+  margin: 10px 0px;
+  padding: 15px 10px 15px 50px;
+  background-repeat: no-repeat;
+  background-position: 10px center;
+  border-radius: 5px;
+  -moz-border-radius: 5px;
+  -webkit-border-radius: 5px;
+}
+.infobox-info {
+  color: #00529B;
+  background-color: #BDE5F8;
+  background-image: url('../img/info-blue.png');
+}
+.infobox-warning {
+  color: #9F6000;
+  background-color: #FEEFB3;
+  background-image: url('../img/info-yellow.png');
+}
+.infobox-success {
+  color: #4F8A10;
+  background-color: #DFF2BF;
+  background-image: url('../img/info-green.png');
+}
+.infobox-error {
+  color: #D8000C;
+  background-color: #FFBABA;
+  background-image: url('../img/info-red.png');
+}
+/* LISTS ------------------------------------------------------------*/
+.lists-check ul,
+.lists-arrow ul,
+.lists-plus ul,
+.lists-star ul,
+.lists-heart ul {
+  margin-bottom: 30px;
+  margin-left: 20px;
+}
+.lists-check ul li {
+  list-style-image: url(../img/bullets/check.png);
+  line-height: 1.5em;
+}
+.lists-arrow ul {
+  list-style-image: url(../img/bullets/arrow.png);
+  line-height: 1.5em;
+}
+.lists-plus ul {
+  list-style-image: url(../img/bullets/plus.png);
+  line-height: 1.5em;
+}
+.lists-star ul {
+  list-style-image: url(../img/bullets/star.png);
+  line-height: 1.5em;
+}
+.lists-heart ul {
+  list-style-image: url(../img/bullets/heart.png);
+  line-height: 1.5em;
+}
+/* PULLQUOTES ------------------------------------------------------------*/
+.pullquote-right,
+.pullquote-left {
+  border-left: #555555 2px solid;
+  float: right;
+  font-size: 16px;
+  line-height: 1.5em;
+  margin: 20px 0px 20px 20px;
+  width: 33%;
+  font-style: italic;
+}
+.pullquote-left {
+  float: left;
+  margin: 20px 20px 20px 0px;
+  padding: 0 0 0 20px;
+}
+.pullquote-right {
+  border-left: none;
+  border-right: #555555 2px solid;
+  padding: 0 20px 0 0px;
+}
+/* HIGHLIGHT ------------------------------------------------------------*/
+.highlight {
+  background: #fbe471;
+}
+/* Link buttons ------------------------------------------------*/
+.theme-link-button {
+  display: inline-block;
+  padding: 10px;
+  background: #cb5432;
+  color: #f1d76e;
+}
+.link-button {
+  display: inline-block;
+  background-color: #cb5432;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#fe8300), to(#c46500));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #fe8300, #c46500);
+  background-image: -moz-linear-gradient(top, #fe8300, #c46500);
+  background-image: -ms-linear-gradient(top, #fe8300, #c46500);
+  background-image: -o-linear-gradient(top, #fe8300, #c46500);
+  background-image: linear-gradient(top, #fe8300, #c46500);
+  border: 1px solid #c46500;
+  border-bottom: 1px solid #fe8300;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  -ms-border-radius: 3px;
+  -o-border-radius: 3px;
+  border-radius: 3px;
+  -webkit-box-shadow: inset 0 1px 0 0 #fe8300;
+  -moz-box-shadow: inset 0 1px 0 0 #fe8300;
+  -ms-box-shadow: inset 0 1px 0 0 #fe8300;
+  -o-box-shadow: inset 0 1px 0 0 #fe8300;
+  box-shadow: inset 0 1px 0 0 #fe8300;
+  color: #703a00;
+  font-weight: bold;
+  line-height: 1;
+  padding: 8px 10px;
+  text-align: center;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+}
+.link-button:hover {
+  color: #703a00;
+  background-color: #ff9627;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#ff9627), to(#c46500));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #ff9627, #c46500);
+  background-image: -moz-linear-gradient(top, #ff9627, #c46500);
+  background-image: -ms-linear-gradient(top, #ff9627, #c46500);
+  background-image: -o-linear-gradient(top, #ff9627, #c46500);
+  background-image: linear-gradient(top, #ff9627, #c46500);
+}
+.link-button.fullwidth {
+  display: block;
+  width: 97%;
+  margin: 0 auto;
+}
+.list-buttons {
+  display: block;
+}
+.list-buttons li {
+  display: block;
+  float: left;
+  margin-right: 5px;
+  margin-bottom: 20px;
+}
+/* Link buttons red ------------------------------------------------*/
+.link-button.red {
+  color: #530909;
+  background-color: #e4504c;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#e4504c), to(#a61b1b));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #e4504c, #a61b1b);
+  background-image: -moz-linear-gradient(top, #e4504c, #a61b1b);
+  background-image: -ms-linear-gradient(top, #e4504c, #a61b1b);
+  background-image: -o-linear-gradient(top, #e4504c, #a61b1b);
+  background-image: linear-gradient(top, #e4504c, #a61b1b);
+  border: 1px solid #6e0606;
+  border-bottom: 1px solid #6e0606;
+  -webkit-box-shadow: inset 0 1px 0 0 #f95c59;
+  -moz-box-shadow: inset 0 1px 0 0 #f95c59;
+  -ms-box-shadow: inset 0 1px 0 0 #f95c59;
+  -o-box-shadow: inset 0 1px 0 0 #f95c59;
+  box-shadow: inset 0 1px 0 0 #f95c59;
+}
+.link-button.red:hover {
+  color: #530909;
+  background-color: #89cc54;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#ff8380), to(#b40e0e));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #ff8380, #b40e0e);
+  background-image: -moz-linear-gradient(top, #ff8380, #b40e0e);
+  background-image: -ms-linear-gradient(top, #ff8380, #b40e0e);
+  background-image: -o-linear-gradient(top, #ff8380, #b40e0e);
+  background-image: linear-gradient(top, #ff8380, #b40e0e);
+}
+/* Link buttons green ------------------------------------------------*/
+.link-button.green {
+  color: #223613;
+  background-color: #7fbf4d;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#7fbf4d), to(#426825));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #7fbf4d, #426825);
+  background-image: -moz-linear-gradient(top, #7fbf4d, #426825);
+  background-image: -ms-linear-gradient(top, #7fbf4d, #426825);
+  background-image: -o-linear-gradient(top, #7fbf4d, #426825);
+  background-image: linear-gradient(top, #7fbf4d, #426825);
+  border: 1px solid #63a62f;
+  border-bottom: 1px solid #5b992b;
+  -webkit-box-shadow: inset 0 1px 0 0 #96ca6d;
+  -moz-box-shadow: inset 0 1px 0 0 #96ca6d;
+  -ms-box-shadow: inset 0 1px 0 0 #96ca6d;
+  -o-box-shadow: inset 0 1px 0 0 #96ca6d;
+  box-shadow: inset 0 1px 0 0 #96ca6d;
+}
+.link-button.green:hover {
+  color: #223613;
+  background-color: #89cc54;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#89cc54), to(#426825));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #89cc54, #426825);
+  background-image: -moz-linear-gradient(top, #89cc54, #426825);
+  background-image: -ms-linear-gradient(top, #89cc54, #426825);
+  background-image: -o-linear-gradient(top, #89cc54, #426825);
+  background-image: linear-gradient(top, #89cc54, #426825);
+}
+/* Link buttons blue ------------------------------------------------*/
+.link-button.blue {
+  color: #2c4358;
+  background-color: #97b2c9;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#97b2c9), to(#4e7da5));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #97b2c9, #4e7da5);
+  background-image: -moz-linear-gradient(top, #97b2c9, #4e7da5);
+  background-image: -ms-linear-gradient(top, #97b2c9, #4e7da5);
+  background-image: -o-linear-gradient(top, #97b2c9, #4e7da5);
+  background-image: linear-gradient(top, #97b2c9, #4e7da5);
+  border: 1px solid #b9d3e9;
+  border-bottom: 1px solid #2c4358;
+  -webkit-box-shadow: inset 0 1px 0 0 #b9d3e9;
+  -moz-box-shadow: inset 0 1px 0 0 #b9d3e9;
+  -ms-box-shadow: inset 0 1px 0 0 #b9d3e9;
+  -o-box-shadow: inset 0 1px 0 0 #b9d3e9;
+  box-shadow: inset 0 1px 0 0 #b9d3e9;
+}
+.link-button.blue:hover {
+  color: #2c4358;
+  background-color: #89cc54;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#89bde8), to(#3771a2));
+  /* Saf4+, Chrome */
+
+  background-image: -webkit-linear-gradient(top, #89bde8, #3771a2);
+  background-image: -moz-linear-gradient(top, #89bde8, #3771a2);
+  background-image: -ms-linear-gradient(top, #89bde8, #3771a2);
+  background-image: -o-linear-gradient(top, #89bde8, #3771a2);
+  background-image: linear-gradient(top, #89bde8, #3771a2);
+}
+/* ACCORDION -------------------------------------------------*/
+.accordion-trigger,
+.toggle-trigger {
+  line-height: 30px;
+  font-size: 14px;
+  border-top: 1px solid #797367;
+  border-left: 1px solid #585246;
+  border-right: 1px solid #585246;
+  border-bottom: 1px solid #373125;
+}
+.accordion-trigger {
+  text-decoration: none;
+  color: #f3e4c8;
+  font-weight: bold;
+  padding: 5px 10px;
+  cursor: pointer;
+  background: #585246;
+}
+.accordion-trigger.active {
+  border-bottom: 1px solid #585246;
+}
+.accordion-trigger:hover {
+  background: #585246;
+}
+.accordion-container {
+  margin-bottom: 0px;
+  padding: 5px 10px;
+  border-bottom: 1px solid #585246;
+  border-right: 1px solid #585246;
+  border-left: 1px solid #585246;
+}
+/* TOGGLE -------------------------------------------------*/
+.toggle-trigger {
+  text-decoration: none;
+  color: #f3e4c8;
+  font-weight: bold;
+  cursor: pointer;
+  overflow: hidden;
+  background-color: #585246;
+  padding: 5px 5px 5px 10px;
+}
+.toggle-trigger i {
+  display: block;
+  float: left;
+  width: 31px;
+  height: 31px;
+  margin-right: 10px;
+  background: url(../img/toggle.png) no-repeat 0px 0px;
+}
+.toggle-trigger.active {
+  border-bottom: 1px solid #585246;
+}
+.toggle-trigger.active i {
+  background-position: 0px -31px;
+}
+.toggle-trigger:hover {
+  background-color: #585246;
+}
+.toggle-container {
+  margin-bottom: 0px;
+  padding: 5px 10px;
+  border-bottom: 1px solid #585246;
+  border-right: 1px solid #585246;
+  border-left: 1px solid #585246;
+}
+/* TABS -------------------------------------------------*/
+/* root element for tabs  */
+.tabs {
+  list-style: none;
+  margin: 0 !important;
+  padding: 0px;
+  height: 33px;
+}
+body.home .tabs {
+  padding: 0px 30px;
+}
+/* single tab */
+ul.tabs li {
+  display: block;
+  float: left;
+  text-indent: 0;
+  padding: 0;
+  margin: 2px 5px 0px 0px !important;
+  list-style-image: none !important;
+  border-top: 1px solid #585246;
+  border-right: 1px solid #585246;
+  border-left: 1px solid #585246;
+}
+/* link inside the tab. uses a background image */
+ul.tabs a {
+  display: block;
+  font-size: 13px;
+  font-weight: bold;
+  height: 30px;
+  line-height: 30px;
+  text-align: center;
+  text-decoration: none;
+  padding: 0px 0px 0px 10px;
+  position: relative;
+  top: 0px;
+}
+ul.tabs a span {
+  display: block;
+  height: 100%;
+  padding-right: 10px;
+}
+ul.tabs a {
+  text-decoration: none;
+  color: #444444;
+  background: #f3e4c8;
+}
+ul.tabs a:active {
+  outline: none;
+}
+/* when mouse enters the tab move the background image */
+ul.tabs li:hover a,
+ul.tabs a.current {
+  background: #f3f3f3;
+  color: #444;
+  border-bottom: 1px solid #f1f1f1;
+}
+/* active tab uses a class name "current". its highlight is also done by moving the background image. */
+ul.tabs a.current,
+ul.tabs a.current:hover,
+ul.tabs li.current a {
+  cursor: default !important;
+  color: #444 !important;
+  display: block;
+  text-decoration: none;
+}
+/* initially all panes are hidden */.panes .pane {
+  display: none;
+}
+.panes > div {
+  display: none;
+  min-height: 200px;
+  border: 1px solid #585246;
+  padding: 15px;
+  background: #f1f1f1;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/gs3-core-min.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/gs3-core-min.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/gs3-core-min.css	(revision 28599)
@@ -0,0 +1,389 @@
+
+/* -------- SEARCH ------- */
+.paramLabel {
+clear: both;
+	margin: 2px;
+	float: left;
+	min-width: 250px;
+}
+.paramValue {
+	margin: 2px;
+	float: left;
+}
+
+
+/** query form style**/
+div#queryform{
+
+}
+
+/** search result style */
+.termInfo{
+font-style: italic;
+
+}
+
+div#matchdocs{
+clear: both;
+}
+
+div.resultnavigation{
+ margin: 0;
+ padding:0;
+}
+
+ul#resultlist li{
+  display:block;
+}
+
+
+
+
+
+
+
+
+
+
+
+/* Horizontal Classifiers */
+
+.horizontalContainer {
+	padding-left:0px;
+	margin:0px;
+	text-transform: uppercase; /* To get the bookshelves and buckets titlecased (they're stored lowercased) */
+}
+
+.selectedHorizontalClassifierNode a{
+	font-weight: bold;
+	text-decoration: none;
+}
+
+.horizontalClassifierNode {
+	padding:0px 0px 10px 10px;
+	list-style:none;
+	display: inline-block;
+}
+
+/* Registered users table */
+
+
+#userListTable {
+	text-align: center;
+	width: 90%;
+	margin: auto;
+}
+
+#userListTable td{
+	border: black 1px solid;
+	padding: 5px;
+}
+
+
+table{
+	border-collapse:collapse;
+	border-spacing:0;
+}
+
+
+
+#auth_navbar {
+	width: 90%;
+	margin: 10px auto;
+}
+
+#auth_navbar span{
+	padding:3px;
+}
+
+
+
+
+/* TABLE OF CONTENTS*/
+.termList {
+	font-size:12px;
+	line-height:14px;
+}
+
+.noTermHighlight{
+
+}
+
+.termHighlight{
+	background:yellow;
+}
+
+#viewAndZoomOptions {
+	margin-bottom:10px;
+	border:0px;
+}
+
+#viewOptions {
+	margin: 0px;
+	padding: 0px;
+}
+
+#viewOptions li {
+	list-style:none;
+	float:left;
+	padding: 5px;
+	cursor:pointer;
+}
+
+
+
+.tableOfContentsTitle{
+	font-weight:bold;
+	text-align:left;
+}
+
+.viewOptions a:link, .viewOptions a:hover, .viewOptions a:active, .viewOptions a:visited {
+	text-decoration:none;
+}
+
+#rightSidebar {
+	width: 30%;
+	min-width:180px;
+	float:right;
+	margin: 0 0 10px 20px;
+}
+
+#contentsArea {
+	padding:0px 10px;
+}
+
+#collectionLinks {
+	position: relative;
+}
+
+
+.tocTable {
+	width: 100%;
+	background: white !important;
+}
+
+.tocTextCell {
+	padding-left:5px;
+}
+
+.tableOfContentsContainer {
+	padding:1px;
+	max-height:500px;
+	overflow:auto;
+}
+
+#tableOfContents {
+	margin: 0;
+	padding: 0;
+	font-size: 90%;
+}
+
+#tableOfContents li {
+	list-style: none;
+	margin: 0;
+	padding: 2px;
+}
+
+#tableOfContents li.current {
+	background-color: #090;
+}
+
+#tableOfContents li.current li {
+	background-color: #fff;
+}
+
+
+/* SECTIONED DOCUMENTS*/
+
+.sectionHeader {
+	margin-top:0px;
+	margin-bottom:0px;
+}
+
+.headerTD {
+	vertical-align: middle;
+}
+
+/* Styles for the different depths */
+.sectionHeaderDepthTitle{
+	font-size:1.4em;
+	line-height:1em;
+	font-weight:bold;
+}
+
+.sectionHeaderDepth1{
+	font-size:1.3em;
+	line-height:1em;
+	font-weight:bold;
+}
+
+.sectionHeaderDepth2{
+	font-size:1.2em;
+	line-height:1em;
+	font-weight:bold;
+	font-style:italic;
+}
+
+.sectionHeaderDepth3{
+	font-size:1.1em;
+	line-height:1em;
+	font-style:italic;
+}
+
+.sectionHeaderDepth4{
+	font-size:1em;
+	line-height:1em;
+	font-weight:italic;
+}
+
+.sectionNumberSpan{
+	/*Comment out this line to enable automatic section numbering*/
+	display:none;
+}
+
+.sectionContainer{
+	padding-top:0.5em;
+	padding-bottom:1em;
+	padding-left:1.5em;
+}
+
+
+
+.sectionText pre {
+width: 100%;
+overflow:hidden;
+clear:both;
+}
+
+#gs-document-text pre {
+white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
+white-space: -pre-wrap;      /* Opera 4-6 */
+white-space: -o-pre-wrap;    /* Opera 7 */
+white-space: pre-wrap;       /* css-3 */
+word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+
+
+/*  HIERARCHICAL CLASSIFIERS     */
+
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+}
+.childrenlist {
+    margin: 0 0 0 10px;
+}
+.childrenlist td {
+    padding: 3px 0 0 10px;
+}
+
+
+
+/* PAGED IMAGE VIEWER */
+
+#viewOptions li {
+    cursor: pointer;
+    float: left;
+    list-style: none outside none;
+    padding: 5px;
+	  display: block;
+}
+
+
+.pageSlider {
+    margin-left: auto;
+    margin-right: auto;
+    overflow: auto;
+    padding: 2px;
+    width: 250px;
+}
+.pageSliderSpacer {
+    width: 2px;
+}
+.pageSliderCol {
+    height: 100px;
+    padding: 2px;
+    text-align: center;
+    vertical-align: top;
+}
+
+
+
+
+/* INTERFACE SPECIFIC */
+
+/*
+.col2{color:#FFFFFF; background-color:#F6F6F6;height:67px;}
+
+
+#header .fl_left p{
+	font-size: 22px;
+	}
+
+.container{
+	min-height: 300px;
+	}
+
+	
+.column .latestnews li{
+	height: auto;
+	}	
+
+#hpage_cats{
+	margin-top: 20px;
+	}	
+
+	
+#hpage_cats .fl_left img, #hpage_cats .fl_right img{
+	height: 100px;
+	width: 100px;
+	}	
+
+
+.panel .panel-overlay, .panel .overlay-background{height: 20px;}
+
+
+#advanced {
+margin: 2px 0px 0px 0px;
+float: right;
+clear: both;
+}	
+
+
+input[type='submit'], button {
+display:block;
+	float:left;
+	border:1px solid #396B86;
+	font-size:12px;
+	width:68px;
+	height:26px;
+	margin:0;
+	padding:4px 0;
+	text-transform:uppercase;
+	color:#FFFFFF;
+	background-color:#059BD8;
+	border-color:#396B86;
+	cursor:pointer;
+	font-weight:bold;
+}	
+
+
+#changePasswordButton {
+	width:175px;
+}	
+
+#addGroupButton {
+	width:100px;
+}
+
+
+li.login  a {
+color: #a4e3fd;
+}
+
+
+input[value='Set preferences'] {
+width: 150px;
+}
+*/
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/isotope.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/isotope.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/isotope.css	(revision 28599)
@@ -0,0 +1,49 @@
+/**** Isotope Filtering ****/
+
+.isotope-item {
+  z-index: 2;
+}
+
+.isotope-hidden.isotope-item {
+  pointer-events: none;
+  z-index: 1;
+}
+
+/**** Isotope CSS3 transitions ****/
+
+.isotope,
+.isotope .isotope-item {
+  -webkit-transition-duration: 0.8s;
+     -moz-transition-duration: 0.8s;
+      -ms-transition-duration: 0.8s;
+       -o-transition-duration: 0.8s;
+          transition-duration: 0.8s;
+}
+
+.isotope {
+  -webkit-transition-property: height, width;
+     -moz-transition-property: height, width;
+      -ms-transition-property: height, width;
+       -o-transition-property: height, width;
+          transition-property: height, width;
+}
+
+.isotope .isotope-item {
+  -webkit-transition-property: -webkit-transform, opacity;
+     -moz-transition-property:    -moz-transform, opacity;
+      -ms-transition-property:     -ms-transform, opacity;
+       -o-transition-property:         top, left, opacity;
+          transition-property:         transform, opacity;
+}
+
+/**** disabling Isotope CSS3 transitions ****/
+
+.isotope.no-transition,
+.isotope.no-transition .isotope-item,
+.isotope .isotope-item.no-transition {
+  -webkit-transition-duration: 0s;
+     -moz-transition-duration: 0s;
+      -ms-transition-duration: 0s;
+       -o-transition-duration: 0s;
+          transition-duration: 0s;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/lessframework.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/lessframework.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/lessframework.css	(revision 28599)
@@ -0,0 +1,326 @@
+/*	Less Framework 4
+	http://lessframework.com
+	by Joni Korpi
+	License: http://opensource.org/licenses/mit-license.php	*/
+/*	
+
+
+
+/*		Default Layout: 992px. 
+		Gutters: 24px.
+		Outer margins: 48px.
+		Leftover space for scrollbars @1024px: 32px.
+-------------------------------------------------------------------------------
+cols    1     2      3      4      5      6      7      8      9      10
+px      68    160    252    344    436    528    620    712    804    896    */
+/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*//* Default General  ----------------------------------------------------*/.wrapper {
+  width: 940px;
+}
+/* Defaul tNav   ----------------------------------------------------*/#comboNav {
+  display: none;
+}
+#nav {
+  display: block;
+}
+/*		Tablet Layout: 768px.
+		Gutters: 24px.
+		Outer margins: 28px.
+		Inherits styles from: Default Layout.
+-----------------------------------------------------------------
+cols    1     2      3      4      5      6      7      8
+px      68    160    252    344    436    528    620    712    */
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+  /* TABLET GENERAL  ----------------------------------------------------*/.wrapper {
+    width: 712px;
+  }
+  /* TABLET NAV  ----------------------------------------------------*/#nav {
+    display: block;
+  }
+  #comboNav {
+    display: none;
+  }
+  #nav li {
+    word-spacing: -0.1em;
+    font-size: 16px;
+  }
+  /* TABLE ISOTOPE ----------------------------------------------------*/.feature {
+    width: 732px;
+    /* 712 + 20 gap */
+  
+  }
+  .feature li {
+    width: 223px;
+  }
+  .feature li .thumb {
+    width: 203px;
+  }
+  .feature li .thumb .date {
+    left: 71px;
+  }
+  /* TABLET BLOG ------------------------------------------------------------*/
+  #posts-list {
+    width: 420px;
+  }
+  #posts-list article {
+    padding: 15px;
+  }
+  #posts-list article .tape {
+    left: 150px;
+  }
+  #posts-list article .excerpt .post-heading {
+    max-width: 330px;
+  }
+  /* TABLET PORTFOLIO ----------------------------------------------------*/.portfolio-content .project-content {
+    float: left;
+    width: 430px;
+  }
+  .portfolio-content .project-info {
+    width: 160px;
+  }
+  /* TABLET RELATED PROJECTS ------------------------------------------------------------*/
+  .related-projects .related-list li {
+    width: 224px;
+    text-align: center;
+    margin-right: 20px;
+  }
+  .related-projects .related-list li .thumb {
+    background: #f3e4c8;
+    padding: 10px;
+    display: block;
+    line-height: 0em;
+    margin-bottom: 10px;
+    box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+  }
+  .related-projects .related-list li:last-child {
+    margin-right: 0px;
+  }
+  /* TABLET WIDGETS  ----------------------------------------------------*/.widget-cols > li {
+    width: 163px;
+    float: left;
+    margin-right: 20px;
+  }
+}
+/*		Mobile Layout: 320px.
+		Gutters: 24px.
+		Outer margins: 34px.
+		Inherits styles from: Default Layout.
+---------------------------------------------
+cols    1     2      3
+px      68    160    252    */
+@media only screen and (max-width: 767px) {
+  .wrapper {
+    width: 252px;
+  }
+  h1 {
+    font-size: 36px;
+  }
+  h2 {
+    font-size: 30px;
+  }
+  h3 {
+    font-size: 24px;
+  }
+  h4 {
+    font-size: 18px;
+  }
+  h5 {
+    font-size: 14px;
+  }
+  h6 {
+    font-size: 14px;
+  }
+  /* MOBILE NAV  ----------------------------------------------------*/#nav {
+    display: none;
+  }
+  #comboNav {
+    display: block;
+  }
+  /* MOBILE Logo ----------------------------------------------------*/#logo {
+    width: 256px;
+  }
+  #logo img {
+    width: 100%;
+  }
+  /* MOBILE SLIDER ----------------------------------------------------*/body .theme-default .nivo-directionNav a {
+    display: none;
+  }
+  /* MOBILE HEALINE ----------------------------------------------------*/.headline {
+    font-family: mensch;
+    font-size: 24px;
+    line-height: 1.3em;
+  }
+  /* MOBILE ISOTOPE ----------------------------------------------------*/#filter-buttons {
+    font-size: 12px;
+    background: #f3e4c8;
+    height: auto;
+  }
+  .feature {
+    width: 252px;
+    margin-left: 0px;
+  }
+  .feature li {
+    width: 252px;
+    margin-left: 0px;
+  }
+  .feature li .thumb {
+    width: 232px;
+  }
+  .feature li .thumb .date {
+    left: 86px;
+  }
+  /* MOBILE COLUMNS ----------------------------------------------------*/.one-half,
+  .one-third,
+  .one-fourth {
+    width: auto;
+    margin-right: 0px;
+  }
+  /* MOBILE BLOG ------------------------------------------------------------*/
+  #posts-list {
+    width: 252px;
+  }
+  #posts-list article {
+    padding: 15px;
+  }
+  #posts-list article .tape {
+    left: 66px;
+  }
+  #posts-list article .feature-image .entry-date {
+    bottom: -66px;
+    right: auto;
+    left: 81px;
+  }
+  #posts-list article .excerpt {
+    margin-top: 90px;
+  }
+  #posts-list article .excerpt .post-heading {
+    max-width: auto;
+    font-size: 24px;
+  }
+  #main .page-navigation {
+    text-indent: -9000px;
+  }
+  #main .page-navigation div {
+    width: 25px;
+  }
+  /* MOBILE SIDEBAR ----------------------------------------------------*/#sidebar {
+    width: 260px;
+  }
+  /* MOBILE PORTFOLIO ----------------------------------------------------*/.portfolio-content .project-content {
+    float: left;
+    width: 192px;
+  }
+  .portfolio-content .project-info {
+    width: 160px;
+  }
+  /* MOBILE RELATED PROJECTS ------------------------------------------------------------*/
+  .related-projects .related-list li {
+    width: 252px;
+    margin-bottom: 30px;
+  }
+  /* MOBILE WIDGETS  ----------------------------------------------------*/.widget-cols > li {
+    width: 252px;
+    float: left;
+    margin-right: 20px;
+    border-bottom: 1px solid #f3e4c8;
+    padding-bottom: 30px;
+    margin-bottom: 30px;
+  }
+  .widget-cols > li:last-child {
+    border-bottom: none;
+  }
+  /* MOBILE Social ----------------------------------------------------*/footer #social-bar {
+    margin: 20px 0px 30px 0px;
+    background: none;
+    height: 46px;
+  }
+  footer #social-bar li {
+    margin-bottom: 5px;
+  }
+  footer #social-bar .left-corner,
+  footer #social-bar .right-corner {
+    display: none;
+  }
+}
+/*		Wide Mobile Layout: 480px.
+		Gutters: 24px.
+		Outer margins: 22px.
+		Inherits styles from: Default Layout, Mobile Layout.
+------------------------------------------------------------
+cols    1     2      3      4      5
+px      68    160    252    344    436    */
+@media only screen and (min-width: 480px) and (max-width: 767px) {
+  .wrapper {
+    width: 436px;
+  }
+  /* WIDE MOBILE Logo ----------------------------------------------------*/#logo {
+    width: 436px;
+  }
+  #logo img {
+    width: 100%;
+  }
+  /* WIDE MOBILE NAV  ----------------------------------------------------*/#nav {
+    display: none;
+  }
+  #comboNav {
+    display: block;
+  }
+  /* WIDE MOBILE HEALINE ----------------------------------------------------*/.headline {
+    font-family: mensch;
+    font-size: 36px;
+    line-height: 1.3em;
+  }
+  /* WIDE MOBILE ISOTOPE ----------------------------------------------------*/.feature {
+    width: 436px;
+    margin-left: 0px;
+  }
+  .feature li {
+    width: 436px;
+    margin-left: 0px;
+  }
+  .feature li .thumb {
+    width: 416px;
+  }
+  .feature li .thumb .date {
+    left: 178px;
+  }
+  /* WIDE MOBILE BLOG ------------------------------------------------------------*/
+  #posts-list {
+    width: 436px;
+  }
+  #posts-list article {
+    padding: 15px;
+  }
+  #posts-list article .tape {
+    left: 156px;
+  }
+  #posts-list article .feature-image .entry-date {
+    bottom: -66px;
+    right: auto;
+    left: 171px;
+  }
+  #posts-list article .excerpt {
+    margin-top: 90px;
+  }
+  #posts-list article .excerpt .post-heading {
+    max-width: auto;
+    font-size: 24px;
+  }
+  /* WIDE MOBILE SIDEBAR ----------------------------------------------------*/#sidebar {
+    width: 436px;
+  }
+  /* WIDE MOBILE PORTFOLIO ----------------------------------------------------*/.portfolio-content .project-content {
+    float: left;
+    width: 376px;
+  }
+  .portfolio-content .project-info {
+    width: 346px;
+  }
+  /* WIDE MOBILE RELATED PROJECTS ------------------------------------------------------------*/
+  .related-projects .related-list li {
+    width: 436px;
+    margin-bottom: 30px;
+  }
+  /* WIDE MOBILE WIDGETS  ----------------------------------------------------*/.widget-cols > li {
+    width: 436px;
+  }
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/nivo-slider.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/nivo-slider.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/nivo-slider.css	(revision 28599)
@@ -0,0 +1,207 @@
+/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*//* SLIDER --------------------------------------------------------- */
+/*
+ * jQuery Nivo Slider v3.0
+ * http://nivo.dev7studios.com
+ *
+ * Copyright 2012, Dev7studios
+ * Free to use and abuse under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+/* The Nivo Slider styles */
+.nivoSlider {
+  position: relative;
+  width: 100%;
+  height: auto;
+  overflow: hidden;
+}
+.nivoSlider img {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+}
+.nivo-main-image {
+  display: block !important;
+  position: relative !important;
+  width: 100% !important;
+}
+/* If an image is wrapped in a link */
+.nivoSlider a.nivo-imageLink {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  width: 100%;
+  height: 100%;
+  border: 0;
+  padding: 0;
+  margin: 0;
+  z-index: 6;
+  display: none;
+}
+/* The slices and boxes in the Slider */
+.nivo-slice {
+  display: block;
+  position: absolute;
+  z-index: 5;
+  height: 100%;
+  top: 0;
+}
+.nivo-box {
+  display: block;
+  position: absolute;
+  z-index: 5;
+  overflow: hidden;
+}
+.nivo-box img {
+  display: block;
+}
+/* Caption styles */
+.nivo-caption {
+  position: absolute;
+  left: 0px;
+  bottom: 0px;
+  background: #f3e4c8;
+  color: #585246;
+  width: 100%;
+  z-index: 8;
+  padding: 5px 10px;
+  opacity: 1;
+  overflow: hidden;
+  display: none;
+  -moz-opacity: 0.8;
+  filter: alpha(opacity=8);
+  -webkit-box-sizing: border-box;
+  /* Safari/Chrome, other WebKit */
+
+  -moz-box-sizing: border-box;
+  /* Firefox, other Gecko */
+
+  box-sizing: border-box;
+  /* Opera/IE 8+ */
+
+}
+.nivo-caption p {
+  padding: 5px;
+  margin: 0;
+}
+.nivo-caption a {
+  display: inline !important;
+}
+.nivo-html-caption {
+  display: none;
+}
+/* Direction nav styles (e.g. Next & Prev) */
+.nivo-directionNav a {
+  position: absolute;
+  top: 45%;
+  z-index: 9;
+  cursor: pointer;
+}
+.nivo-prevNav {
+  left: 0px;
+}
+.nivo-nextNav {
+  right: 0px;
+}
+/* Control nav styles (e.g. 1,2,3...) */
+.nivo-controlNav {
+  text-align: center;
+  padding: 15px 0;
+}
+.nivo-controlNav a {
+  cursor: pointer;
+}
+.nivo-controlNav a.active {
+  font-weight: bold;
+}
+/*
+Skin Name: Nivo Slider Default Theme
+Skin URI: http://nivo.dev7studios.com
+Skin Type: flexible
+Description: The default skin for the Nivo Slider.
+Version: 1.2
+Author: Gilbert Pellegrom
+Author URI: http://dev7studios.com
+*/
+.theme-default {
+  padding: 10px;
+  background: #f3e4c8;
+  margin-bottom: 20px;
+}
+.theme-default.theme-home {
+  margin-bottom: 20px;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+.theme-default .nivoSlider {
+  position: relative;
+  background: #f3e4c8 url(../img/loading.gif) no-repeat 50% 50%;
+}
+.theme-default .nivoSlider img {
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  display: none;
+}
+.theme-default .nivoSlider a {
+  border: 0;
+  display: block;
+}
+.theme-default .nivo-controlNav {
+  text-align: left;
+  padding: 10px 0;
+}
+.theme-default .nivo-controlNav a {
+  display: inline-block;
+  width: 11px;
+  height: 11px;
+  background: #ff9a78;
+  text-indent: -9999px;
+  border: 0;
+  margin: 0 2px;
+  -moz-border-radius: 11px 11px 11px 11px;
+  -webkit-border-radius: 11px 11px 11px 11px;
+  border-radius: 11px 11px 11px 11px;
+}
+.theme-default .nivo-controlNav a.active {
+  background: #cb5432;
+}
+.theme-default .nivo-directionNav a {
+  display: block;
+  width: 38px;
+  height: 64px;
+  background: url(../img/arrows.png) no-repeat;
+  text-indent: -9999px;
+  border: 0;
+}
+.theme-default a.nivo-nextNav {
+  background-position: 0px -64px;
+  right: 0px;
+}
+.theme-default a.nivo-prevNav {
+  left: 0px;
+}
+.theme-default .nivo-caption {
+  font-family: Helvetica, Arial, sans-serif;
+  font-weight: bold;
+  color: #CB5432;
+}
+.theme-default .nivo-caption a {
+  color: #cb5432;
+  border-bottom: 1px dotted #cb5432;
+}
+.theme-default .nivo-caption a:hover {
+  color: #cb5432;
+}
+.theme-default .nivo-controlNav.nivo-thumbs-enabled {
+  width: 100%;
+}
+.theme-default .nivo-controlNav.nivo-thumbs-enabled a {
+  width: auto;
+  height: auto;
+  background: none;
+  margin-bottom: 5px;
+}
+.theme-default .nivo-controlNav.nivo-thumbs-enabled img {
+  display: block;
+  width: 120px;
+  height: auto;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/reset.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/reset.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/reset.css	(revision 28599)
@@ -0,0 +1,48 @@
+/* http://meyerweb.com/eric/tools/css/reset/ 
+   v2.0 | 20110126
+   License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed, 
+figure, figcaption, footer, header, hgroup, 
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol, ul {
+	list-style: none;
+}
+blockquote, q {
+	quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/style.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/style.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/style.css	(revision 28599)
@@ -0,0 +1,680 @@
+@import url('reset.css');
+
+@import url('widgets.css');
+
+@import url('elements.css');
+
+@import url('comments.css');
+
+@import url('../js/poshytip-1.1/src/tip-yellow/tip-yellow.css');
+
+@import url('isotope.css');
+/*
+* Folder v1.0
+*
+*/
+/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*//* IMPORT ------------------------------------------------------------*/
+/* aditional */
+/* Fonts ----------------------------------------------------*//* Here you go ie */
+@font-face {
+  font-family: 'mensch';
+  font-style: normal;
+  font-weight: normal;
+  src: url('../fonts/mensch-webfont.eot');
+}
+/* For real web browsers */
+@font-face {
+  font-family: 'mensch';
+  font-style: normal;
+  font-weight: normal;
+  src: url('../fonts/mensch-webfont.ttf');
+}
+/* GENERAL ------------------------------------------------------------*/
+.cf:after,
+.cf:before {
+  content: "";
+  display: table;
+}
+.cf:after {
+  clear: both;
+}
+.cf {
+  zoom: 1;
+}
+.wrapper {
+  margin: 0 auto;
+  width: 940px;
+  position: relative;
+}
+body {
+  font-family: Helvetica, Arial, sans-serif;
+  font-size: 16px;
+  line-height: 1.5em;
+  background: #95c9c3 url(../img/grunge.png) repeat-x center 150px;
+}
+body a {
+  text-decoration: none;
+  -webkit-transition: all 0.3s ease;
+  -moz-transition: all 0.3s ease;
+  -o-transition: all 0.3s ease;
+  transition: all 0.3s ease;
+}
+body p {
+  margin-bottom: 21px;
+}
+#main h1,
+#main h2,
+#main h3,
+#main h4,
+#main h5,
+#main h6 {
+  font-family: mensch;
+  line-height: 1.3em;
+}
+h1 {
+  font-size: 48px;
+}
+h2 {
+  font-size: 36px;
+}
+h3 {
+  font-size: 30px;
+}
+h4 {
+  font-size: 24px;
+}
+h5 {
+  font-size: 18px;
+}
+h6 {
+  font-size: 14px;
+}
+/* HEADER ----------------------------------------------------*/header {
+  background: url(../img/header.png);
+  height: 150px;
+}
+
+#logo {
+text-align: center;
+}
+
+header #logo:hover {
+  opacity: 0.8;
+}
+header #logo img {
+  display: inline-block;
+  margin: 50px 20px 30px 20px; 
+}
+
+#div-title {
+	display: inline;
+	font-size: 70px;
+	margin-top: -20px;
+	margin: 50px 20px 50px 20px; 
+	color: #F3E4C8;
+}
+
+/* NAVIGATION ------------------------------------------------------------*/
+nav {
+  height: 68px;
+  float: left;
+  width: 100%;
+  margin-top: 0px;
+  position: relative;
+  background: url(../img/ribbon.png) no-repeat top center;
+}
+#nav {
+  clear: left;
+  display: block;
+  float: right;
+  position: relative;
+  right: 50%;
+  text-align: center;
+}
+#nav > li {
+  display: block;
+  float: left;
+  position: relative;
+  left: 50%;
+  font-family: mensch;
+  word-spacing: -0.1em;
+  font-size: 20px;
+  /* sub navigation -----------------------------------------------------*/
+
+}
+#nav > li.current-menu-item i,
+#nav > li.current_page_item i {
+  display: block;
+}
+#nav > li a {
+  display: block;
+  padding: 20px 10px 0px 10px;
+  color: #f3e4c8;
+  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3);
+}
+#nav > li a:hover i {
+  display: block;
+}
+#nav > li a i {
+  display: none;
+  width: 16px;
+  height: 16px;
+  position: absolute;
+  left: 50%;
+  top: -4px;
+}
+#nav > li a i b {
+  position: absolute;
+  display: block;
+  background: url(../img/current.png) no-repeat 0px 0px;
+  width: 16px;
+  height: 16px;
+  left: -8px;
+}
+#nav > li ul {
+  font-size: 14px;
+  font-family: Tahoma;
+  text-align: left;
+  margin-top: 19px;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+#nav > li ul li {
+  border-top: 1px solid #a03a26;
+  border-bottom: 1px solid #812f1e;
+}
+#nav > li ul li a {
+  padding: 15px;
+  background: #963724;
+}
+#nav > li ul li a:hover {
+  background: #a03a26;
+}
+#nav > li ul li:last-child {
+  border-bottom: none;
+}
+/* COMBO NAVIGATION ------------------------------------------------------------*/
+#comboNav {
+  width: 100%;
+  margin-top: 20px;
+  margin-bottom: 30px;
+  float: left;
+}
+/* MAIN ----------------------------------------------------*/#main .wrapper {
+  margin-top: 60px;
+  margin-bottom: 50px;
+  min-height: 500px;
+  color: #444;
+  font-size: 16px;
+  line-height: 1.5em;
+}
+/* HEALINE ----------------------------------------------------*/.headline {
+  color: #cb5432;
+  text-align: center;
+  font-family: mensch;
+  font-size: 48px;
+  line-height: 1.3em;
+  word-spacing: -0.1em;
+  text-shadow: 3px 3px 0 rgba(255, 255, 255, 0.5);
+  margin-bottom: 20px;
+}
+
+/* FEATURE ----------------------------------------------------*/.feature {
+  width: 960px;
+  margin-left: -20px;
+}
+.feature li {
+  position: relative;
+  background: #f3e4c8;
+  width: 300px;
+  margin-bottom: 50px;
+  margin-left: 20px;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+.feature li .thumb {
+  display: block;
+  margin: 10px;
+  width: 280px;
+}
+.feature li .thumb img {
+  max-width: 100%;
+}
+.feature li .caption {
+  padding: 10px 10px 20px 10px;
+  text-align: center;
+}
+.feature li a {
+  color: #cb5432;
+}
+.feature li .thumb {
+  position: relative;
+}
+.feature li .thumb .date {
+  position: absolute;
+  bottom: -25px;
+  left: 110px;
+  display: block;
+  -moz-border-radius: 40px 40px 40px 40px;
+  -webkit-border-radius: 40px 40px 40px 40px;
+  border-radius: 40px 40px 40px 40px;
+  height: 50px;
+  width: 60px;
+  background: #f3e4c8;
+  float: left;
+  font-family: mensch;
+  padding-top: 10px;
+}
+.feature li .thumb .date span {
+  display: block;
+  text-align: center;
+  font-size: 20px;
+  line-height: 20px;
+}
+/* PAGE CONTENT ----------------------------------------------------*/.page-content {
+  position: relative;
+  background: #f3e4c8;
+  color: #585246;
+  padding: 50px 30px 60px 30px;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+.page-content .heading {
+  border-bottom: 5px solid #585246;
+  margin-bottom: 30px;
+  padding-bottom: 10px;
+}
+.page-content .c-1,
+.page-content .c-2,
+.page-content .c-3,
+.page-content .c-4 {
+  position: absolute;
+  width: 48px;
+  height: 50px;
+}
+.page-content .c-1 {
+  top: 0px;
+  left: 0px;
+  background: url(../img/corner-1.png) no-repeat top left;
+}
+.page-content .c-2 {
+  top: 0px;
+  right: 0px;
+  background: url(../img/corner-2.png) no-repeat top left;
+}
+.page-content .c-3 {
+  bottom: 0px;
+  left: 0px;
+  background: url(../img/corner-3.png) no-repeat top left;
+}
+.page-content .c-4 {
+  bottom: 0px;
+  right: 0px;
+  background: url(../img/corner-4.png) no-repeat top left;
+}
+/* CONTACT ------------------------------------------------------------*/
+#map_canvas {
+  display: block;
+  height: 300px;
+  width: 100%;
+  margin-bottom: 20px;
+}
+/* PORTFOLIO ----------------------------------------------------*/.portfolio-content {
+  margin-bottom: 40px;
+}
+.portfolio-content .project-content {
+  float: left;
+  width: 660px;
+}
+.portfolio-content .project-info {
+  float: right;
+  width: 160px;
+  font-size: 14px;
+  padding-left: 30px;
+  border-left: 1px solid #585246;
+}
+.portfolio-content .project-info p {
+  margin-bottom: 10px;
+}
+.portfolio-content .project-info strong {
+  font-weight: bold;
+  display: block;
+}
+.portfolio-content .project-info a {
+  color: #cb5432;
+}
+/* RELATED PROJECTS ------------------------------------------------------------*/
+.related-projects {
+  margin-bottom: 80px;
+}
+.related-projects .related-heading {
+  text-align: center;
+  margin-bottom: 10px;
+}
+.related-projects a {
+  color: #444444;
+}
+.related-projects .related-list li {
+  float: left;
+  width: 300px;
+  text-align: center;
+  margin-right: 20px;
+}
+.related-projects .related-list li .thumb {
+  background: #f3e4c8;
+  padding: 10px;
+  display: block;
+  line-height: 0em;
+  margin-bottom: 10px;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+.related-projects .related-list li .thumb img {
+  max-width: 100%;
+}
+.related-projects .related-list li:last-child {
+  margin-right: 0px;
+}
+/* ENTRY CONTENT ------------------------------------------------------------*/
+.entry-content a {
+  color: #cb5432;
+}
+.entry-content strong {
+  font-weight: bold;
+}
+.entry-content ul,
+.entry-content ol {
+  margin-left: 20px;
+}
+.entry-content ul {
+  list-style: disc;
+}
+.entry-content ol {
+  list-style: decimal;
+}
+/* BLOG ------------------------------------------------------------*/
+#posts-list {
+  position: relative;
+  width: 620px;
+  float: left;
+}
+#posts-list article {
+  position: relative;
+  margin-bottom: 50px;
+  padding: 30px;
+  background: #f3e4c8;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+#posts-list article .tape {
+  position: absolute;
+  top: -15px;
+  left: 250px;
+  display: block;
+  width: 122px;
+  height: 35px;
+  background: url(../img/tape.png) no-repeat top left;
+}
+#posts-list article .feature-image {
+  position: relative;
+  line-height: 0em;
+}
+#posts-list article .feature-image img {
+  max-width: 100%;
+}
+#posts-list article .feature-image .entry-date {
+  position: absolute;
+  bottom: -66px;
+  right: 0px;
+  width: 51px;
+  height: 66px;
+  background: url(../img/date.png) no-repeat top left;
+  font-family: mensch;
+  font-size: 20px;
+  line-height: 1.1em;
+  text-align: center;
+  color: #f3e4c8;
+}
+#posts-list article .feature-image .entry-date .month {
+  margin-top: 7px;
+}
+#posts-list article .excerpt {
+  margin-top: 40px;
+  color: #585246;
+}
+#posts-list article .excerpt .post-heading {
+  font-family: mensch;
+  font-size: 36px;
+  line-height: 1.1em;
+  color: #585246;
+  display: block;
+  max-width: 480px;
+}
+#posts-list article .meta {
+  display: block;
+  border-top: 1px solid #585246;
+  font-size: 14px;
+  padding-top: 10px;
+}
+#posts-list article .meta a {
+  color: #cb5432;
+}
+/* PAGE NAVIGATION ------------------------------------------------------------*/
+#main .page-navigation {
+  position: relative;
+  left: 50%;
+  display: block;
+  margin-bottom: 100px;
+  float: left;
+}
+#main .page-navigation div {
+  position: relative;
+  right: 50%;
+  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.1);
+}
+#main .page-navigation div span {
+  margin-bottom: 15px;
+  display: inline-block;
+}
+#main .page-navigation a {
+  display: block;
+  -webkit-transition: all 0.3s ease;
+  -moz-transition: all 0.3s ease;
+  -o-transition: all 0.3s ease;
+  transition: all 0.3s ease;
+  color: #cb5432;
+  display: block;
+  padding: 10px 15px;
+}
+#main .page-navigation .nav-next {
+  float: left;
+  margin-right: 20px;
+  background: #f3e4c8 url(../img/arrow-left.png) no-repeat left 12px;
+  padding-left: 20px;
+}
+#main .page-navigation .nav-previous {
+  float: right;
+  background: #f3e4c8 url(../img/arrow-right.png) no-repeat right 12px;
+  padding-right: 20px;
+}
+/* SIDEBAR ------------------------------------------------------------*/
+#sidebar {
+  position: relative;
+  width: 260px;
+  float: right;
+  font-size: 14px;
+}
+#sidebar .block {
+  margin-bottom: 40px;
+  padding-bottom: 5px;
+}
+#sidebar .heading {
+  border-top: 5px solid #444444;
+  border-bottom: 5px solid #444444;
+  margin-bottom: 15px;
+  padding-top: 15px;
+  padding-bottom: 10px;
+  line-height: 1.1em;
+  text-align: center;
+}
+#sidebar li {
+  margin-bottom: 7px;
+}
+#sidebar a {
+  color: #cb5432;
+}
+/* FILTERED ITEMS ----------------------------------------------------*/.isotope-item {
+  z-index: 2;
+}
+.isotope-hidden.isotope-item {
+  pointer-events: none;
+  z-index: 1;
+}
+#filter-buttons {
+  text-align: center;
+  background: url(../img/filter.png) no-repeat top center;
+  height: 47px;
+  margin-bottom: 20px;
+}
+#filter-buttons li {
+  display: inline-block;
+  margin-bottom: 0px;
+}
+#filter-buttons li a {
+  display: block;
+  text-decoration: none;
+  margin-bottom: 0px;
+  margin-right: 5px;
+  line-height: 47px;
+  color: #cb5432;
+}
+#filter-buttons li .selected {
+  background: url(../img/filter-arrow.png) no-repeat center top;
+}
+/* COLUMNS LAYOUT----------------------------------------------------------*/
+.one-half,
+.one-third,
+.one-fourth {
+  float: left;
+  margin-bottom: 40px;
+  margin-right: 2.1276%;
+  position: relative;
+}
+.one-half {
+  width: 48.9361%;
+}
+.one-third {
+  width: 31.9148%;
+}
+.one-fourth {
+  width: 23.4042%;
+}
+.last {
+  clear: right;
+  margin-right: 0 !important;
+}
+/* FOOTER ----------------------------------------------------*/footer {
+  background: #585246 url(../img/footer.png) repeat-x;
+  color: #f3e4c8;
+  padding-bottom: 60px;
+}
+footer a {
+  color: #fff;
+  text-decoration: none;
+}
+footer a:hover {
+  color: #cb5432;
+}
+footer h1,
+footer h2,
+footer h3,
+footer h4,
+footer h5,
+footer h6 {
+  color: #f9f5ed;
+  font-family: mensch;
+  word-spacing: -0.1em;
+  text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3);
+  line-height: 1.3em;
+}
+footer .sb-holder {
+  position: relative;
+  left: 50%;
+  text-align: center;
+  float: left;
+}
+footer #social-bar {
+  display: block;
+  position: relative;
+  float: left;
+  right: 50%;
+  margin: -7px 5px 0px 5px;
+  background: url(../img/social-bg.png) repeat-x;
+  height: 46px;
+  padding-top: 8px;
+  padding-left: 10px;
+  padding-right: 10px;
+}
+footer #social-bar li {
+  float: left;
+  line-height: 1em;
+  margin-left: 3px;
+  margin-right: 3px;
+}
+footer #social-bar li a {
+  display: block;
+  line-height: 0em;
+}
+footer #social-bar li a:hover {
+  -webkit-transform: translate(0px, -2px);
+  -moz-transform: translate(0px, -2px);
+  -o-transform: translate(0px, -2px);
+  transform: translate(0px, -2px);
+}
+footer #social-bar .left-corner {
+  position: absolute;
+  top: 0px;
+  left: -10px;
+  display: block;
+  width: 10px;
+  height: 18px;
+  background: url(../img/social-left-corner.png) no-repeat left top;
+}
+footer #social-bar .right-corner {
+  position: absolute;
+  top: 0px;
+  right: -13px;
+  display: block;
+  width: 10px;
+  height: 18px;
+  background: url(../img/social-right-corner.png) no-repeat left top;
+}
+footer #footer-bottom {
+  font-size: 14px;
+  text-align: center;
+  border-top: 1px solid rgba(0, 0, 0, 0.2);
+  padding-top: 25px;
+}
+/* WIDGET COLS ------------------------------------------------------------*/
+.widget-cols {
+  margin-top: 80px;
+  margin-bottom: 30px;
+  font-size: 14px;
+}
+.widget-cols h1,
+.widget-cols h2,
+.widget-cols h3,
+.widget-cols h4,
+.widget-cols h5,
+.widget-cols h6 {
+  margin-bottom: 20px;
+  font-weight: normal;
+  text-align: center;
+  border-bottom: 0px solid #ada18e;
+  border-top: 0px solid #ada18e;
+  padding-top: 0px;
+  padding-bottom: 0px;
+}
+.widget-cols > li {
+  width: 220px;
+  float: left;
+  margin-right: 20px;
+}
+.widget-cols > li.fourth-col {
+  margin-right: 0px;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/superfish.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/superfish.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/superfish.css	(revision 28599)
@@ -0,0 +1,62 @@
+/*** ESSENTIAL STYLES ***/
+
+.sf-menu, .sf-menu * {
+	margin:			0;
+	padding:		0;
+	list-style:		none;
+}
+.sf-menu {
+	
+}
+.sf-menu ul {
+	position:		absolute;
+	top:			-999em;
+	width:			10em; /* left offset of submenus need to match (see below) */
+
+}
+.sf-menu ul li {
+	width:			100%;
+}
+.sf-menu li:hover {
+	visibility:		inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+	float:			left;
+	position:		relative;
+}
+.sf-menu a {
+	display:		block;
+	position:		relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+	left:			0;
+	top:			2.5em; /* match top ul list item height */
+	z-index:		99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+	top:			-999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+	left:			10em; /* match ul width */
+	top:			0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+	top:			-999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+	left:			10em; /* match ul width */
+	top:			0;
+}
+
+
+
+
+
+
+
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/tweet.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/tweet.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/tweet.css	(revision 28599)
@@ -0,0 +1,52 @@
+/* Tweet widget CSS */
+
+.tweet,
+.query { }
+
+.tweet .tweet_list,
+.query .tweet_list {
+    -webkit-border-radius: .5em;
+    list-style-type: none;
+    margin: 0;
+    padding: 0;
+    overflow-y: hidden;
+  	
+}
+
+
+.tweet .tweet_list .awesome,
+.tweet .tweet_list .epic,
+.query .tweet_list .awesome,
+.query .tweet_list .epic {
+      text-transform: uppercase; }
+
+.tweet .tweet_list li,
+.query .tweet_list li {
+      overflow-y: auto;
+      overflow-x: hidden;
+      padding: 1em ;
+      background-image: url(../img/bird.png);
+      background-repeat: no-repeat;
+      background-position: 6px 19px;
+      padding-left: 40px;
+}
+
+.tweet a,
+.query  a {
+        
+}
+
+.tweet .tweet_list .tweet_odd,
+.query .tweet_list .tweet_odd {
+       background-color: rgba(0,0,0,0.2);}
+
+.tweet .tweet_list .tweet_avatar,
+.query .tweet_list .tweet_avatar {
+      padding-right: .5em;
+      float: left;
+}
+
+.tweet .tweet_list .tweet_avatar img,
+.query .tweet_list .tweet_avatar img {
+        vertical-align: middle;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/css/widgets.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/css/widgets.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/css/widgets.css	(revision 28599)
@@ -0,0 +1,65 @@
+/* Vars ----------------------------------------------------*//* Mixins ----------------------------------------------------*//* SIDEBAR  ----------------------------------------------------*/#sidebar .cat-item a,
+#sidebar .page_item a {
+  display: block;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+  padding-bottom: 5px;
+  margin-bottom: 5px;
+  padding-left: 10px;
+}
+#sidebar .cat-item a .post-counter,
+#sidebar .page_item a .post-counter {
+  color: #444444;
+}
+#sidebar .ads a {
+  display: block;
+  float: left;
+  margin-right: 10px;
+  margin-bottom: 10px;
+  line-height: 0em;
+}
+#sidebar .ads a.last {
+  margin-right: 0px;
+}
+/* WIDGETS -----------------------------------------------*/
+.widget-cols {
+  /* RECENT POSTS -----------------------------------------------*/
+
+}
+.widget-cols .cat-item a,
+.widget-cols .page_item a {
+  display: block;
+  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+  padding-bottom: 5px;
+  margin-bottom: 5px;
+  padding-left: 10px;
+}
+.widget-cols .cat-item a .post-counter,
+.widget-cols .page_item a .post-counter {
+  color: #f1f1f1;
+}
+.widget-cols .cat-item:last-child a,
+.widget-cols .page_item:last-child a {
+  border-bottom: none;
+}
+.widget-cols .recent-post {
+  margin-bottom: 21px;
+}
+.widget-cols .recent-post .thumb {
+  display: block;
+  float: left;
+  background: #f1f1f1;
+  line-height: 0em;
+  padding: 3px;
+  margin-right: 15px;
+  margin-bottom: 10px;
+  -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
+  -moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
+  -o-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
+  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
+}
+.widget-cols .recent-post .post-head {
+  overflow: auto;
+}
+.widget-cols .recent-post span {
+  display: block;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/fonts/mensch-webfont.svg
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/fonts/mensch-webfont.svg	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/fonts/mensch-webfont.svg	(revision 28599)
@@ -0,0 +1,143 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="MenschRegular" horiz-adv-x="1705" >
+<font-face units-per-em="2048" ascent="1536" descent="-512" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode=" "  horiz-adv-x="1024" />
+<glyph unicode="&#x09;" horiz-adv-x="1024" />
+<glyph unicode="&#xa0;" horiz-adv-x="1024" />
+<glyph unicode="!" horiz-adv-x="288" d="M61 84q0 -35 24 -58.5t58 -23.5q35 0 58.5 23.5t23.5 58.5t-23.5 58.5t-58.5 23.5t-58.5 -23.5t-23.5 -58.5zM72 338v1089q0 29 21.5 50.5t49.5 21.5q29 0 50.5 -21.5t21.5 -50.5v-1089q0 -31 -21.5 -51.5t-50.5 -20.5t-50 20.5t-21 51.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="577" d="M119 1393v213q0 29 20.5 51t48.5 22q29 -2 51.5 -23.5t22.5 -49.5v-213q0 -29 -20 -50.5t-49 -23.5q-31 2 -52.5 23.5t-21.5 50.5zM334 1393v213q0 29 20.5 51t48.5 22q29 -2 51.5 -23.5t22.5 -49.5v-213q0 -29 -20 -50.5t-49 -23.5q-31 2 -52.5 23.5t-21.5 50.5z" />
+<glyph unicode="#" />
+<glyph unicode="$" d="M530 408q0 29 20.5 50t51.5 21q29 0 50.5 -21.5t21.5 -49.5q0 -135 100 -166v501q-41 31 -82 64t-73.5 75t-52 93t-19.5 117v33.5t8 59.5t24.5 70.5t47.5 69.5q59 63 147 78v57q0 29 21.5 50.5t50.5 21.5q31 0 51.5 -21.5t20.5 -50.5v-59q53 -10 86.5 -32.5t52.5 -45.5 q31 -35 45 -75t18 -73.5t2 -58t-2 -31.5q-4 -18 -12 -30q-8 -10 -23.5 -19.5t-40.5 -5.5q-27 4 -39 15.5t-18 25.5q-8 16 -8 35q2 16 -2 55t-29 68q-14 16 -30 22v-432q41 -29 77.5 -60.5t71.5 -72.5q96 -121 96 -278q0 -98 -35.5 -158t-72.5 -88q-53 -47 -137 -64v-53 q0 -31 -20.5 -51.5t-51.5 -20.5q-29 0 -50.5 20.5t-21.5 51.5v49q-84 16 -143 66q-35 29 -68 88t-33 160zM690 1094q0 -53 21.5 -92t62.5 -76v329q-23 -8 -43 -28q-16 -18 -24.5 -40t-12.5 -42q-4 -23 -4 -45v-6zM918 246q39 14 70.5 50t31.5 112q0 78 -27.5 131t-74.5 96 v-389z" />
+<glyph unicode="%" />
+<glyph unicode="&#x26;" />
+<glyph unicode="'" horiz-adv-x="305" d="M88 1393v213q0 29 20.5 50t51.5 21q29 0 50 -21.5t21 -49.5v-213q0 -29 -21 -50.5t-50 -21.5q-31 0 -51.5 21.5t-20.5 50.5z" />
+<glyph unicode="(" horiz-adv-x="622" d="M109 729q0 29 1 78t5 110.5t11 130t19 136.5q31 156 80 252q47 80 98.5 104.5t90.5 24.5q23 0 39 -16.5t16 -39.5q0 -25 -16.5 -40t-38.5 -15q-10 0 -35 -9t-55 -65q-23 -37 -39.5 -91t-30.5 -126q-12 -66 -18.5 -131t-10.5 -123.5t-5 -105.5t-1 -74q0 -29 1 -76 t5 -105.5t10.5 -125t18.5 -129.5q14 -72 30.5 -126t39.5 -91q31 -55 55 -64.5t35 -9.5q23 0 39 -15.5t16 -39.5q0 -23 -16 -39.5t-39 -16.5q-39 0 -90.5 25t-98.5 107q-49 92 -80 249q-12 68 -19 136.5t-11 130t-5 111.5t-1 79z" />
+<glyph unicode=")" horiz-adv-x="616" d="M127 -53q0 25 16.5 40t38.5 15q10 0 35 9t55 65q23 37 39.5 91t30.5 126q12 63 18.5 129.5t10.5 125t5 105.5t1 76q0 27 -1 74t-5 105.5t-10.5 124t-18.5 130.5q-14 72 -30.5 126t-39.5 91q-31 55 -55 64.5t-35 9.5q-23 0 -39 15.5t-16 39.5q0 23 16.5 39.5t38.5 16.5 q39 0 90.5 -24.5t98.5 -104.5q49 -96 80 -252q12 -68 19 -136.5t11 -130t5 -110.5t1 -78t-1 -79t-5 -111.5t-11 -130t-19 -136.5q-31 -158 -80 -249q-47 -82 -98.5 -107t-90.5 -25q-23 0 -39 16.5t-16 39.5z" />
+<glyph unicode="*" horiz-adv-x="698" d="M41 1151q0 16 10 26.5t27 10.5h211l-105 184q-10 14 -5 28.5t18 22.5q14 8 29.5 4t23.5 -18l106 -180l105 180q8 16 22.5 19.5t30.5 -3.5q12 -10 16.5 -24.5t-4.5 -28.5l-104 -184h211q16 0 27.5 -10.5t11.5 -26.5q0 -39 -39 -39h-211l106 -182q14 -33 -14 -53 q-8 -4 -20 -5q-20 0 -33 19l-105 182l-106 -182q-10 -20 -33 -21q-8 0 -20 7q-12 10 -17.5 23t4.5 30l105 182h-211q-37 0 -37 39z" />
+<glyph unicode="+" horiz-adv-x="1001" d="M70 623q0 31 21.5 51t49.5 20h285v285q0 29 21.5 50.5t50.5 21.5t50 -21.5t21 -50.5v-285h283q31 0 51.5 -20.5t20.5 -50.5q0 -29 -20.5 -50.5t-51.5 -21.5h-283v-283q0 -29 -21.5 -50t-49.5 -21q-29 0 -50.5 21.5t-21.5 49.5v283h-285q-29 0 -50 21.5t-21 50.5z" />
+<glyph unicode="," horiz-adv-x="378" d="M64 -135q-9 29 6 53l96 186q14 27 43 36.5t55 -5.5q27 -14 35 -43t-6 -53l-98 -186q-14 -27 -41 -36t-56 5q-25 14 -34 43z" />
+<glyph unicode="-" d="M559 684q0 29 21.5 50.5t50.5 21.5h418q29 0 50 -21.5t21 -50.5q0 -31 -21 -51.5t-50 -20.5h-418q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="." horiz-adv-x="215" d="M27 68q0 33 22.5 56t56.5 23q33 0 55.5 -23t22.5 -56t-22.5 -56.5t-55.5 -23.5q-35 0 -57 23.5t-22 56.5z" />
+<glyph unicode="/" horiz-adv-x="602" d="M55 72l351 1335q6 29 31.5 44t54.5 7t44 -33.5t7 -54.5l-350 -1335q-6 -29 -32 -44t-55 -7q-31 8 -45 33.5t-6 54.5z" />
+<glyph unicode="0" horiz-adv-x="823" d="M76 301.5v36.5v825q0 96 29.5 167t78.5 117t109.5 68.5t122.5 22.5q39 0 104.5 -14.5t128.5 -69.5q12 -10 25.5 -24.5t25.5 -32.5q2 -2 2 -3t3 -3q27 -39 45 -95.5t18 -134.5v-837q0 -8 -1 -39t-10 -73t-29.5 -89t-57.5 -86q-94 -100 -252 -100t-248 100q-29 29 -51 74 q0 4 -4 8q-23 49 -33 117q-6 39 -6 65.5zM219 444l342 895q-41 39 -85 47.5t-60 8.5q-76 0 -131 -49q-66 -61 -66 -183v-719zM260 152q4 -4 8 -9.5t8 -9.5q47 -53 142 -53q94 0 147 53q25 25 37 56.5t17.5 59t5.5 47v21.5v7v778z" />
+<glyph unicode="1" horiz-adv-x="843" d="M82 49q0 31 21.5 51.5t50.5 20.5h208v1175l-149 -151q-23 -20 -51.5 -20.5t-50.5 20.5q-20 23 -20.5 51.5t20.5 50.5l274 273q33 33 78 16q43 -20 43 -68v-1347h207q31 0 51 -20.5t20 -51.5q0 -29 -20.5 -50.5t-50.5 -21.5h-559q-29 0 -50.5 21.5t-21.5 50.5z" />
+<glyph unicode="2" horiz-adv-x="829" d="M39 27q0 186 108 376q47 82 104.5 157t117.5 147q49 61 95 119.5t81 118t56.5 118.5t21.5 121q0 2 2 4v20.5t-5.5 44t-17.5 54t-35 53.5q-47 53 -151 53q-98 0 -144 -51q-20 -23 -28 -52.5t-13 -54.5q-4 -31 0 -59q4 -25 -2 -47q-4 -18 -17 -33.5t-40 -17.5q-29 -4 -43 8 t-25 29q-10 18 -14 41q-2 4 -3 30.5t3 65.5q12 115 74 184q90 100 252 100q164 0 258 -100q37 -39 55.5 -83t27.5 -84t9 -69.5v-37.5q0 -143 -92 -303q-41 -68 -91.5 -133.5t-103.5 -129.5q-49 -59 -97 -120.5t-88 -125t-68.5 -131t-39.5 -141.5h349q76 0 92 25q12 16 15 49 t3 64t20.5 51t51.5 20q29 0 50 -20.5t21 -50.5q0 -61 -8 -109.5t-37 -87.5q-20 -29 -45.5 -45.5t-54.5 -25.5t-56 -11t-52 -2h-424q-31 0 -51.5 21.5t-20.5 50.5z" />
+<glyph unicode="3" horiz-adv-x="870" d="M74 293.5q2 25.5 2 30.5q2 20 10 34q8 12 23.5 20.5t44.5 4.5q27 -4 41 -16.5t19 -25.5t5 -24.5v-13.5l-2 -17q-2 -18 1 -43.5t12.5 -54t29.5 -51.5q45 -51 143 -51q166 0 228 80q45 57 45 168q0 233 -94 332q-78 80 -240 79q-31 0 -51.5 21.5t-20.5 50.5v2 q0 29 20.5 50.5t51.5 21.5q72 0 128 5t85 30q55 45 55 252v6v19.5t-5 43t-16 54t-34 53.5q-51 53 -152 53q-100 0 -143 -51q-20 -23 -28.5 -51.5t-11.5 -54t-2 -42.5l1 -18q4 -29 -14.5 -52.5t-46.5 -27.5q-29 -4 -53.5 13.5t-28.5 45.5q0 4 -2 31t2 66q12 111 76 184 q86 100 251 100q164 0 256 -98q37 -39 56.5 -84t29 -85t9.5 -69.5v-37.5q0 -131 -23 -218q-25 -92 -84 -143q-4 -2 -5 -4t-5 -4q24 -18 47 -41q135 -139 135 -432q0 -162 -76 -256q-104 -135 -340 -135q-164 0 -251 100q-63 72 -76 184q-4 41 -2 66.5z" />
+<glyph unicode="4" horiz-adv-x="833" d="M18 745l187 709q8 29 33.5 44t54.5 7t44 -32.5t7 -53.5l-164 -620h455v637q0 31 21.5 51t50.5 20t50 -20.5t21 -50.5v-1420q0 -29 -21.5 -50t-49.5 -21q-29 0 -50.5 21.5t-21.5 49.5v639h-549q-37 0 -55 29q-23 25 -13 61z" />
+<glyph unicode="5" horiz-adv-x="774" d="M8 147q-8 29 8.5 54.5t44.5 34.5q29 6 53.5 -9.5t32.5 -44.5q2 -8 9.5 -24.5t27 -31.5t56 -26.5t98.5 -11.5q180 0 244 125q29 57 32.5 117.5t3.5 95.5q0 39 -9 100.5t-39.5 117.5t-91 97t-165.5 41h-217q-31 0 -51 21q-20 20 -20 51v608q0 29 21.5 49.5t49.5 20.5h486 q29 0 50 -20.5t21 -51.5q0 -29 -21.5 -50t-49.5 -21h-414v-463h145q82 0 144.5 -19.5t108.5 -50.5t77 -67.5t51 -73.5q23 -41 36 -82t20.5 -80t9.5 -71.5t2 -55.5q0 -18 -1 -50t-6 -69t-15.5 -78t-30.5 -79q-18 -35 -47 -72t-73 -66.5t-106.5 -48t-144.5 -18.5 q-90 0 -150.5 21.5t-98.5 52t-56.5 65.5t-24.5 63z" />
+<glyph unicode="6" horiz-adv-x="954" d="M37 743q4 211 88 377q70 131 192 240q51 43 100.5 72.5t89.5 49t64.5 29t26.5 9.5q20 6 41 4q16 -2 31.5 -10.5t23.5 -32.5q8 -27 1 -44.5t-19 -29.5q-14 -14 -35 -25l-21 -7q-20 -7 -52.5 -23.5t-74.5 -42t-85 -62.5q-227 -195 -228 -506v-4q0 -23 -1 -44t-1 -44l6 6 q23 25 53.5 50.5t72.5 47t94.5 35t115.5 13.5q66 0 117 -13.5t91 -34t68.5 -46t47.5 -50.5q39 -51 52 -94t15 -53q23 -111 -2 -221q-25 -121 -98 -207q-111 -123 -283 -123h-30q-248 18 -367 240q-111 199 -94 544zM228 366.5q5 -57.5 28 -100.5q82 -152 252 -164 q123 -6 194 74q47 55 65.5 139t2.5 168q0 4 -9 32t-34 58q-72 84 -207 84q-84 0 -138 -29.5t-87 -64.5t-47.5 -65.5t-14.5 -32.5q-10 -41 -5 -98.5z" />
+<glyph unicode="7" horiz-adv-x="825" d="M39 1436q0 31 20.5 51t51.5 20h639q35 0 57 -26q10 -14 13 -30.5t-1 -33.5l-407 -1407q-6 -23 -25.5 -37t-42.5 -14q-14 0 -20 2q-29 10 -43.5 36t-6.5 54l379 1313h-542q-31 0 -51.5 21.5t-20.5 50.5z" />
+<glyph unicode="8" horiz-adv-x="829" d="M6 332q0 297 133 432q23 23 47 41q-6 6 -10 8q-59 53 -84 143q-23 86 -22 218v16v32.5t2 41.5q16 113 78 184q86 100 251 100h11h8q166 0 254 -100q63 -74 76 -184q6 -41 2 -74v-16q0 -68 -5.5 -122.5t-17.5 -95.5q-25 -92 -84 -143q-6 -6 -10 -8q12 -10 24.5 -20.5 t24.5 -20.5q133 -139 133 -432v-16.5t-2 -16.5h2q-2 -2 -2 -10q-8 -129 -74 -213q-78 -102 -233 -127q-20 -4 -43 -6t-45 -2h-8h-11q-41 0 -79 6q-158 25 -242 129q-74 94 -74 256zM150 322q0 -8 8 -46t35 -79q51 -88 149 -107q33 -6 70 -6q39 0 73 6q92 18 146 103 q23 35 31 66.5t10 45.5q2 8 2 27q0 233 -94 332q-57 61 -168 75q-109 -14 -170 -75q-92 -96 -92 -332v-10zM213 1167q2 -201 57 -243q20 -18 56 -25.5t86 -9.5q47 2 82.5 9t58.5 26q55 43 55 252v6v6v6q0 12 -2 30.5t-8 40t-16.5 45t-28.5 42.5q-49 53 -141 53 q-94 0 -142 -53q-18 -18 -29.5 -42t-17.5 -45.5t-8 -40t-2 -30.5v-6q2 -12 0 -21z" />
+<glyph unicode="9" horiz-adv-x="884" d="M19.5 1109.5q0.5 57.5 11.5 113.5q29 125 100 204q119 135 311 123q178 -12 283 -106q102 -96 141 -297v-2q43 -276 -180 -733q-41 -82 -81 -153t-71.5 -123t-52 -84t-22.5 -34q-23 -30 -60 -30q-20 0 -41 12q-23 16 -27.5 46t11.5 54q0 2 40 61.5t94 157t111.5 219 t96.5 246.5q-47 -31 -111.5 -51t-150.5 -22h-2q-66 0 -117 13t-90 33.5t-67.5 46t-47.5 50.5q-41 51 -54 93t-15 52q-10 53 -9.5 110.5zM170 1026q2 -4 10 -30.5t35 -57.5q66 -84 205 -84q160 4 252 107q29 31 41 57t16 37q0 16 -1 33.5t-3 33.5q-16 84 -43 138.5t-63.5 85 t-83 44t-101.5 17.5q-123 8 -196 -74q-47 -53 -65.5 -137t-2.5 -168v-2z" />
+<glyph unicode=":" horiz-adv-x="344" d="M82 346q0 33 22.5 56.5t57.5 23.5q33 0 55.5 -23.5t22.5 -56.5t-22.5 -56.5t-55.5 -23.5q-35 0 -57.5 23.5t-22.5 56.5zM82 981q0 33 22.5 56.5t57.5 23.5q33 0 55.5 -23.5t22.5 -56.5t-22.5 -56.5t-55.5 -23.5q-35 0 -57.5 23.5t-22.5 56.5z" />
+<glyph unicode=";" horiz-adv-x="333" d="M82 981q0 33 22.5 56.5t57.5 23.5q33 0 55.5 -23.5t22.5 -56.5t-22.5 -56.5t-55.5 -23.5q-35 0 -57.5 23.5t-22.5 56.5zM86 346q0 -33 22.5 -56.5t57.5 -23.5h6q8 -66 -49 -123q-14 -14 -14 -33.5t14 -35.5q18 -14 35 -15q16 0 35 15q59 59 71 118.5t2 102.5 q-4 27 -12 47t-16 33q-8 23 -28 37t-44 14q-35 0 -57.5 -23.5t-22.5 -56.5z" />
+<glyph unicode="&#x3c;" horiz-adv-x="794" d="M88 578q0 31 21 49l485 487q23 20 51.5 20.5t50.5 -20.5q20 -23 20.5 -51.5t-20.5 -50.5l-436 -434l430 -428q23 -23 23 -51.5t-21 -51.5q-20 -20 -51 -20t-51 20l-481 479q-20 18 -21 52z" />
+<glyph unicode="=" horiz-adv-x="1083" d="M49 467q0 31 21.5 51.5t50.5 20.5h827q29 0 50.5 -20.5t21.5 -51.5q0 -29 -21.5 -50.5t-50.5 -21.5h-827q-29 0 -50.5 21.5t-21.5 50.5zM49 856q0 31 21.5 51.5t50.5 20.5h827q29 0 50.5 -20.5t21.5 -51.5q0 -29 -21.5 -50.5t-50.5 -21.5h-827q-29 0 -50.5 21.5 t-21.5 50.5z" />
+<glyph unicode="&#x3e;" horiz-adv-x="815" d="M104.5 1042.5q-0.5 28.5 20.5 51.5q23 20 51.5 20t50.5 -20l486 -488q20 -18 20 -49q0 -33 -20 -51l-482 -479q-20 -21 -51 -21t-51 21q-20 23 -20 51t22 51l430 428l-436 434q-20 23 -20.5 51.5z" />
+<glyph unicode="?" horiz-adv-x="860" d="M70 1157q0 74 28.5 139.5t76.5 114.5t113.5 77t139.5 28t139.5 -28t114.5 -77t76.5 -114.5t27.5 -139.5t-19 -127t-49 -93t-66 -67.5t-68 -48.5q-53 -37 -77 -60.5t-24 -62.5v-70.5v-46t1 -30.5t1 -23v-118q0 -29 -21 -50.5t-50 -21.5q-31 0 -51.5 21.5t-20.5 50.5v116 q-2 20 -2 54v118q0 49 15.5 86t39 66t52 50.5t55.5 39.5q59 39 100 83t41 134q0 45 -17.5 84t-46 67.5t-67.5 46t-84 17.5t-84 -17.5t-68.5 -46t-46 -67.5t-16.5 -84q0 -29 -20.5 -50.5t-51.5 -21.5q-29 0 -50 21.5t-21 50.5zM326 98q0 -35 23.5 -58.5t58.5 -23.5t58 23.5 t23 58.5t-23.5 58.5t-57.5 23.5q-35 0 -58.5 -23.5t-23.5 -58.5z" />
+<glyph unicode="@" />
+<glyph unicode="A" horiz-adv-x="866" d="M82 53l285 1415q2 8 4 11v2v2q4 10 10 14v4h2v2h2v2h2v2h2q4 4 8 6.5t11 4.5v2h2q4 2 9 2t9 2h2h4h2q4 -2 9.5 -2t9.5 -2h2v-2q8 -2 12 -4.5t8 -6.5h2v-2h2v-2h2v-2l2 -4t5.5 -7t5.5 -7v-2v-2q2 -2 2 -11l286 -1415q2 -8 2 -15q0 -20 -12 -38q-16 -24 -43 -29h-12 q-23 0 -42.5 15.5t-23.5 38.5l-55 266h-332l-53 -266q-4 -23 -23.5 -38.5t-44.5 -15.5h-12q-27 6 -42 30q-11 17 -11 36q0 8 2 16zM293 424h278l-141 692z" />
+<glyph unicode="B" horiz-adv-x="991" d="M178 63v1381q0 29 20.5 50.5t51.5 21.5h2h262q125 0 211 -127q80 -115 80 -269q0 -74 -20.5 -143.5t-59.5 -124.5q-12 -18 -27 -33q47 -33 86 -88q86 -127 86 -301q0 -84 -22.5 -160.5t-63.5 -140.5q-47 -66 -107.5 -102.5t-125.5 -36.5h-291q-2 0 -4 2q-2 -2 -6 -2 q-31 0 -51.5 21.5t-20.5 51.5zM322 135h229q29 0 58.5 20.5t54.5 55.5q31 45 47 102.5t16 116.5q0 61 -16.5 118.5t-46.5 100.5q-51 76 -113 76h-229v-590zM322 870h192q25 0 51.5 19.5t47 53.5t33.5 79t13 98t-13 98.5t-33.5 79t-47 53t-51.5 19.5h-192v-500z" />
+<glyph unicode="C" horiz-adv-x="991" d="M166 340v37v788q0 94 29.5 164t76.5 115t106.5 66.5t119.5 21.5q37 0 101.5 -14.5t123.5 -67.5q41 -35 79 -102.5t38 -182.5q0 -31 -21.5 -52t-52.5 -21t-52.5 21.5t-21.5 51.5q0 76 -23.5 120t-56 65.5t-64.5 27.5t-50 6q-35 0 -67 -12t-54 -35q-63 -57 -64 -172v-792 v-6v-21.5t4.5 -47.5t15.5 -59.5t34 -56.5q45 -49 133 -49q92 0 137 51q23 25 34 53.5t16 55t5 45.5v18q-2 31 18.5 53.5t51.5 24.5q29 2 52.5 -18.5t25.5 -48.5v-31t-9 -68q-18 -115 -86 -184q-91 -98 -245 -98t-242 98q-35 35 -55.5 84t-30.5 108q-6 37 -6 64z" />
+<glyph unicode="D" horiz-adv-x="976" d="M176 61v1381q0 29 20.5 50t51.5 21h112h158q61 0 120.5 -21.5t107 -66.5t77 -114.5t29.5 -163.5v-789q0 -96 -29.5 -164.5t-77 -114.5t-107 -67.5t-120.5 -21.5h-158h-112q-31 0 -51.5 21.5t-20.5 49.5zM319 135h41h158q76 0 127 47q63 59 64 176v789q0 113 -64 176 q-53 47 -127 47h-158h-41v-1235z" />
+<glyph unicode="E" horiz-adv-x="974" d="M158 61v1381q0 29 21.5 50t51.5 21h543q31 0 52.5 -21.5t21.5 -49.5q0 -31 -21.5 -52.5t-52.5 -21.5h-471v-629h354q31 0 51.5 -21.5t20.5 -51.5q0 -29 -20.5 -50.5t-51.5 -21.5h-354v-459h471q31 0 52.5 -21.5t21.5 -52.5q0 -29 -21.5 -50t-52.5 -21h-543 q-31 0 -52 21.5t-21 49.5z" />
+<glyph unicode="F" horiz-adv-x="960" d="M180 61v1381q0 29 21.5 50t52.5 21h543q31 0 52 -21.5t21 -49.5q0 -31 -21.5 -52.5t-51.5 -21.5h-471v-629h354q31 0 51.5 -21.5t20.5 -51.5q0 -29 -20.5 -50.5t-51.5 -21.5h-354v-533q0 -29 -21.5 -50t-50.5 -21q-31 0 -52.5 21.5t-21.5 49.5z" />
+<glyph unicode="G" horiz-adv-x="976" d="M142 326v15q0 14 1 21v803q0 94 30 164t77 115t106.5 66.5t120.5 21.5q131 0 223 -82q39 -35 75 -103.5t36 -183.5q0 -29 -21.5 -50t-50.5 -21q-31 0 -52 21.5t-21 49.5q0 78 -24 123t-54.5 67.5t-62 29t-48.5 6.5q-74 0 -127 -48q-63 -59 -63 -176v-809v-2v-21.5t4 -48 t15 -61.5t36 -57q45 -49 135 -49q96 0 141 51q23 25 35.5 55.5t17.5 57t5 45.5v18v2v260h-144q-31 0 -52 21.5t-21 52.5q0 29 21.5 50.5t51.5 21.5h287v-402q1 -5 1 -19v-15q-1 -27 -7 -62q-23 -113 -88 -184q-92 -99 -248 -99t-241 99q-70 72 -89 194q-4 35 -5 62z" />
+<glyph unicode="H" horiz-adv-x="1054" d="M174 61v1381q0 29 21.5 50t50.5 21q31 0 52 -21.5t21 -49.5v-703h431v703q0 29 21 50t52 21q29 0 50.5 -21.5t21.5 -49.5v-1381q0 -29 -21.5 -50t-50.5 -21q-31 0 -52 21.5t-21 49.5v533h-431v-533q0 -29 -21.5 -50t-51.5 -21q-29 0 -50.5 21.5t-21.5 49.5z" />
+<glyph unicode="I" horiz-adv-x="507" d="M178 61v1381q0 29 20.5 50t51.5 21q29 0 50.5 -21.5t21.5 -49.5v-1381q0 -29 -21.5 -50t-50.5 -21q-31 0 -51.5 21.5t-20.5 49.5z" />
+<glyph unicode="J" horiz-adv-x="1009" d="M167 334q1 28 1 33q4 25 12 45q8 16 23.5 29.5t44.5 9.5t42 -19.5t17 -32.5q6 -20 4 -45q-1 -9 -1 -17q0 -27 5 -52q4 -29 15.5 -62t36.5 -57q45 -51 135 -51t141 51q23 25 35 54.5t17 56t5 46v21.5v4v1094q0 29 21.5 50t50.5 21q31 0 52.5 -21.5t21.5 -49.5l-2 -1092 q2 -8 1 -34.5t-7 -61.5q-10 -55 -32 -103.5t-56 -82.5q-92 -97 -248 -97t-242 97q-70 76 -88 196q-5 35 -5 61v9z" />
+<glyph unicode="K" horiz-adv-x="1040" d="M176 70v440v2v932q0 31 21.5 52.5t50.5 21.5q31 0 52.5 -21.5t21.5 -52.5v-678l438 713q16 27 45 34t55 -10q25 -16 32 -44.5t-9 -55.5l-322 -522l391 -772q9 -16 9 -33q0 -12 -4 -22q-9 -28 -35 -42q-14 -8 -33 -8q-20 0 -37.5 10.5t-28.5 28.5l-350 694l-151 -248v-419 q0 -31 -21.5 -51.5t-52.5 -20.5q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="L" horiz-adv-x="1056" d="M233 61v1381q0 29 21.5 50t50.5 21q31 0 51.5 -21.5t20.5 -49.5v-1307h473q29 0 50.5 -21.5t21.5 -52.5q0 -29 -21.5 -50t-50.5 -21h-545q-29 0 -50.5 21.5t-21.5 49.5z" />
+<glyph unicode="M" horiz-adv-x="1167" d="M139 61v1381v4v2v2q2 0 2 2v2v4q2 4 6 17l3 2v2l2 2v2q2 0 2 2q4 4 5 6t5 4l2 2q0 2 2 2h2v2h2q0 2 2 2h2v2h2h2q0 2 2 2t2 1t2 1h2l2 2h3h2h2q0 2 2 2h2h4h4h2h2h2h2h2h2h2h2l2 -2q8 0 17 -4q2 -2 4 -2q0 -2 2 -2l2 -2q2 0 4 -2q6 -6 10 -8q0 -2 2 -2v-2l2 -2v-2 q2 0 2 -2l2 -2v-2l2 -2l310 -607l309 607v2l2 2v2h2v2l2 2q0 2 2 2v2q8 8 12 10q0 2 3 2h2q0 2 2 2v2h2h2q0 2 2 2q2 2 5 2t7 2h2h2q0 2 2 2h2h2h2h2h4h5h4h2h2h2v-2h2h2h2h2v-2h4l2 -2h2l2 -2h4v-2h2v-2h2l2 -2q2 0 3 -2h2l2 -2q4 -2 8 -10q2 0 2 -2l2 -2v-2l2 -2l2 -2 q4 -8 4 -15v-2h2v-4v-2v-2v-2v-2v-4v-1381q0 -29 -20.5 -50t-51.5 -21q-29 0 -50 21.5t-21 49.5v1080l-234 -457q-10 -29 -35 -41q-20 -8 -32 -8q-10 0 -17.5 2t-15.5 6q-27 12 -37 41l-231 457v-1080q0 -29 -21.5 -50t-50.5 -21q-31 0 -52.5 21.5t-21.5 49.5z" />
+<glyph unicode="N" horiz-adv-x="1038" d="M158 68v1378v4v2v2v2v2v2h2v4v2v2l2 2v5q2 0 2 2t1 2t1 2v2h2v2q0 2 2 2v2l2 2l2 2q0 2 2 2q0 2 1 2t1 2q2 0 2 2h2l2 2l2 2q2 0 2 2h2l3 2h2l2 2h2q4 4 8 4.5t8 2.5h2q4 2 16 2h5h2q2 0 2 -2h2h2h4q2 -2 4 -2l2 -3h4l2 -2q2 0 4 -2h2q0 -2 2 -2l2 -2h2v-2h2q0 -2 3 -2 q0 -2 2 -2q2 -2 2 -4q2 0 2 -2h2v-2h2v-2q0 -2 2 -2v-2l2 -2q0 -2 1 -2t1 -2l2 -4l459 -1059v1032q0 29 20.5 50.5t50.5 21.5q29 0 50.5 -21.5t21.5 -50.5v-1378v-7v-2v-2v-2v-2l-2 -2v-2v-4l-2 -2v-4q-2 0 -2 -2v-2l-2 -2v-2q-2 0 -2 -2v-2h-2v-2l-2 -2q0 -2 -2 -2 q0 -2 -1 -2.5t-1 -2.5l-2 -2q-2 0 -2 -2h-3l-2 -2q0 -2 -2 -2l-2 -2h-2q0 -2 -2 -2h-2v-2h-2l-2 -2q-8 -4 -16 -4q-4 -2 -15 -2h-2h-2h-2h-4q-4 0 -6 2h-4q-4 2 -5 2t-5 2q-2 2 -4 2t-5 2l-2 2l-2 2h-2q0 2 -2 2l-2 2l-2 2l-2 2l-2 2q-2 2 -2 5q-2 0 -2 2l-2 2q-2 2 -2 6 q-2 2 -2 3t-2 3l-459 1057v-1030q0 -29 -20.5 -50.5t-51.5 -21.5q-29 0 -50 21.5t-21 50.5z" />
+<glyph unicode="O" horiz-adv-x="927" d="M129 321.5q0 26.5 2 36.5v801q0 94 29.5 164t77 116t106.5 67.5t121 21.5q37 0 100.5 -14.5t124.5 -67.5q20 -18 41 -43t37 -60.5t27.5 -80.5t11.5 -103v-815v-33.5t-6 -60.5q-20 -113 -88 -187q-92 -98 -248 -98t-244 98q-68 74 -86 195q-6 37 -6 63.5zM274 327.5 q0 -20.5 4.5 -49t15.5 -61.5t36 -57q45 -49 135 -49q92 0 141 51q23 25 35 54.5t17.5 56t5.5 45v20.5v4v817q0 78 -25 122t-57.5 66.5t-66.5 28.5t-50 6q-76 0 -127 -47q-63 -59 -64 -176v-803v-6v-22.5z" />
+<glyph unicode="P" horiz-adv-x="970" d="M143 61v1379q0 43 37 63q14 12 37 13h301q66 0 126.5 -40t107.5 -112q41 -66 63.5 -145.5t22.5 -161.5q0 -84 -22.5 -164t-63.5 -145q-47 -72 -107.5 -111t-126.5 -39h-231v-537q0 -31 -20.5 -51t-51.5 -20q-29 0 -50.5 20.5t-21.5 50.5zM287 741h231q27 0 56.5 21.5 t54.5 62.5q31 47 47 107.5t16 124.5q0 61 -16.5 121.5t-46.5 107.5q-25 41 -54.5 62.5t-56.5 21.5h-231v-629z" />
+<glyph unicode="Q" horiz-adv-x="1024" d="M184 325.5q0 26.5 2 36.5v801q0 94 30 164t77 116t106.5 67.5t118.5 21.5q39 0 102.5 -14.5t124.5 -67.5q20 -18 41 -43t37.5 -60.5t27.5 -80.5t11 -103v-815v-33.5t-6 -60.5q-18 -94 -70 -166l84 -96q18 -20 18 -46v-6q-3 -30 -26 -51q-20 -16 -47 -16q-35 0 -55 25 l-88 102q-68 -31 -152 -31q-156 0 -244 99q-68 74 -86 194q-6 37 -6 63.5zM330 331.5q0 -20.5 4 -49t15 -61t36 -57.5q45 -49 135 -49q92 0 142 51q23 25 35 54.5t17 56t5 45v20.5v6v815q0 78 -24.5 122t-58.5 66.5t-66.5 28.5t-51.5 6q-74 0 -125 -47q-63 -59 -63 -176 v-803v-6v-22.5z" />
+<glyph unicode="R" horiz-adv-x="1005" d="M162 61v1379q0 31 21.5 52t49.5 21h306q66 0 126 -39.5t107 -111.5q41 -66 63.5 -145.5t22.5 -161.5q0 -84 -22.5 -164t-63.5 -146q-51 -78 -110 -112l237 -543q7 -16 7 -31q0 -13 -5 -25q-10 -28 -39 -38q-8 -4 -15 -5t-13 -1q-23 0 -40.5 10t-27.5 33l-246 563h-213 v-535q0 -31 -21.5 -51t-52.5 -20q-29 0 -50 20.5t-21 50.5zM307 739h232q27 0 56.5 22.5t53.5 61.5q31 47 48.5 107.5t17.5 124.5q0 61 -17.5 121.5t-48.5 107.5q-25 41 -54.5 62.5t-55.5 21.5h-232v-629z" />
+<glyph unicode="S" horiz-adv-x="958" d="M127 344q0 31 21.5 51.5t52.5 20.5q29 0 49 -20.5t20 -51.5q0 -68 19.5 -111t50.5 -66.5t68.5 -32.5t74.5 -9q20 0 58.5 5t75 27.5t64.5 65.5t28 121q0 76 -21.5 133.5t-59.5 102.5t-87 82.5t-105 76.5q-49 35 -99 74t-91 86q-96 113 -99 260q0 8 1.5 33t7.5 57 q18 104 82 174q92 96 247 97q158 0 244 -97q31 -35 49.5 -80t22.5 -98q4 -37 3 -62.5t-3 -29.5q-6 -27 -15 -47q-10 -16 -24 -28.5t-43 -8.5t-41 21.5t-16 35.5q-6 23 -3 48q4 29 0 55q-4 23 -12 50.5t-26 49.5q-41 49 -136 49q-94 0 -141 -53q-23 -23 -34 -51.5t-15 -50.5 q-6 -29 -4 -56v-6q0 -51 16.5 -92t46 -76t71.5 -68.5t95 -72.5q59 -39 115.5 -83t105.5 -103q111 -135 111 -322q0 -94 -32 -162.5t-84 -112.5t-118.5 -65.5t-134.5 -21.5q-143 0 -241 81q-39 33 -77 99.5t-38 181.5z" />
+<glyph unicode="T" horiz-adv-x="911" d="M82 1440q0 31 21.5 52t52.5 21h643q29 0 50 -21.5t21 -51.5q0 -29 -21.5 -50.5t-49.5 -21.5h-248v-1307q0 -31 -20.5 -51t-51.5 -20q-29 0 -50 20.5t-21 50.5v1307h-252q-31 0 -52.5 21.5t-21.5 50.5z" />
+<glyph unicode="U" horiz-adv-x="1026" d="M182 325.5v36.5v1080q0 29 21.5 50t50.5 21q31 0 52.5 -21.5t21.5 -49.5v-1082v-6q0 -2 -1 -22.5t4 -49t16 -61.5t34 -57q45 -49 135 -49q94 0 143 51q23 25 35.5 54.5t16.5 58.5q6 31 4 63v6v1092q0 31 21.5 52t51.5 21q29 0 50.5 -21.5t21.5 -51.5v-1092q0 -8 -1 -33.5 t-7 -60.5q-18 -113 -88 -186q-90 -99 -248 -99q-154 0 -242 99q-70 78 -86 194q-6 37 -6 63.5z" />
+<glyph unicode="V" horiz-adv-x="958" d="M139 1425q-2 8 -2 15q1 22 13 40q16 26 45 31q8 2 15 2q21 0 39 -13q25 -17 32 -46l211 -1038l210 1038q6 29 30 46q18 13 39 13q7 0 15 -2q32 -5 48 -31q12 -19 12 -40q0 -7 -2 -15l-277 -1366q-6 -25 -26.5 -41t-44.5 -16h-4h-7q-25 0 -45 16.5t-24 40.5z" />
+<glyph unicode="W" horiz-adv-x="1280" d="M158 1432q-1 5 -1 10q0 23 15 42q18 23 49 27q5 1 10 1q23 0 43 -15q24 -18 27 -47l131 -1061l141 430l2 2v2q0 2 3 2v2v2q4 4 4 5v2l2 2l2 2q0 2 2 2v2h2v2l2 2q2 0 2 2h2v2l2 2q4 4 9 5t9 5h5l2 2h2h2h2h2v2h2h2h2h2h2h2h2h2h2h2h2l2 -2h2h5q2 0 2 -1t2 -1h4q4 -4 8 -5 t8 -5l2 -2q2 0 2 -2h2v-2h2v-2q2 0 2 -2h2v-2l2 -2l2 -2q0 -2 3 -2v-2v-3h2v-2v-2q2 0 2 -2l2 -2v-2v-2l143 -430l131 1061q3 30 27 48q18 15 41 14q6 0 12 -1q29 -3 49 -27q16 -19 15 -41q0 -6 -1 -11l-170 -1379q-2 -2 -2 -6v-2v-2l-2 -2v-2q0 -2 -2 -4q0 -4 -4 -8 q0 -2 -2 -4v-3h-2v-2l-2 -2v-2h-2v-2q-8 -8 -14 -10q0 -2 -2 -2l-2 -2h-2l-2 -2h-3q-6 -2 -14 -6h-2h-2h-2h-2h-4h-4h-4h-2h-2h-3q-4 0 -6 2h-4q-8 2 -16 8q-2 2 -4 3t-4 3l-4 4h-2l-3 2v2q-2 0 -2 1t-2 1v2q0 2 -1 2t-1 3h-2q0 4 -2 4v2l-2 4q0 2 -1 3t-1 3l-174 526 l-174 -526q-2 -2 -2 -6h-2q0 -4 -2 -4v-2l-2 -4q-2 -2 -2 -5q-2 0 -2 -2l-2 -2l-2 -2l-2 -2l-5 -4h-2q-4 -4 -8 -6q-6 -6 -14 -8h-4h-2q-2 -2 -4 -2h-2h-2h-5h-2h-2h-4h-2h-2h-2h-2h-2q-6 2 -14 6h-2h-2v2h-2l-3 2q-2 0 -2 2h-2q-4 2 -10 8v2h-2q0 2 -2 2q0 2 -2 2v2l-2 2 l-2 3l-6 12v4q-2 0 -2 2v2v2v2q-2 2 -2 6z" />
+<glyph unicode="X" horiz-adv-x="976" d="M143 88l217 563l48 119l-244 631q-10 29 1 56.5t40 37.5q14 5 27 5q16 0 30 -6q28 -11 37 -40l184 -481l187 481q10 29 36 40q14 6 29 6q13 0 27 -5q29 -10 41 -37.5t2 -56.5l-244 -631l264 -682q5 -13 5 -26q0 -14 -7 -30q-12 -28 -41 -38q-8 -4 -24 -4q-23 0 -41.5 11 t-26.5 34l-207 534l-204 -534q-8 -23 -27 -34t-41 -11q-16 0 -25 4q-29 10 -41 38q-7 15 -7 30q0 13 5 26z" />
+<glyph unicode="Y" horiz-adv-x="913" d="M127 1413q-5 14 -5 27q0 15 6 28q11 27 40 37q15 6 30 6q13 0 26 -5q28 -11 38 -40l197 -499l196 499q10 29 38 40q13 5 27 5q15 0 30 -6q29 -10 40 -37q6 -13 6 -28q0 -13 -5 -27l-261 -655v-697q0 -31 -20.5 -51t-50.5 -20q-29 0 -50.5 20.5t-21.5 50.5v697z" />
+<glyph unicode="Z" horiz-adv-x="976" d="M136 36q-5 13 -5 26q0 14 6 30l502 1276h-350q-29 0 -50.5 21.5t-21.5 50.5q0 31 21.5 52t50.5 21h456h5h4q0 -2 2 -2h2h2h2q2 0 4 -2h2h2l2 -2h4q0 -2 2 -2h2l2 -2l2 -2h2l2 -2q8 -6 13 -12l2 -2l2 -2v-2q2 0 2 -2l2 -2q2 -4 3 -8.5t3 -8.5q0 -2 2 -4v-2v-2v-2v-2v-4v-2 v-2v-2v-4v-4v-3v-2v-2q-2 0 -2 -2v-4q-2 0 -2 -2l-506 -1282h438q31 0 51.5 -21.5t20.5 -50.5q0 -31 -20.5 -52t-51.5 -21h-530q-25 0 -39 12q-29 10 -40 36z" />
+<glyph unicode="[" />
+<glyph unicode="\" />
+<glyph unicode="]" />
+<glyph unicode="^" />
+<glyph unicode="_" />
+<glyph unicode="`" d="M686 1594.5q8 27.5 35 43.5q27 14 55.5 6t42.5 -34l103 -187q16 -25 7 -53.5t-34 -42.5q-29 -16 -56.5 -7t-41.5 34l-103 186q-16 27 -8 54.5z" />
+<glyph unicode="a" horiz-adv-x="866" d="M82 53l285 1415q2 8 4 11v2v2q4 10 10 14v4h2v2h2v2h2v2h2q4 4 8 6.5t11 4.5v2h2q4 2 9 2t9 2h2h4h2q4 -2 9.5 -2t9.5 -2h2v-2q8 -2 12 -4.5t8 -6.5h2v-2h2v-2h2v-2l2 -4t5.5 -7t5.5 -7v-2v-2q2 -2 2 -11l286 -1415q2 -8 2 -15q0 -20 -12 -38q-16 -24 -43 -29h-12 q-23 0 -42.5 15.5t-23.5 38.5l-55 266h-332l-53 -266q-4 -23 -23.5 -38.5t-44.5 -15.5h-12q-27 6 -42 30q-11 17 -11 36q0 8 2 16zM293 424h278l-141 692z" />
+<glyph unicode="b" horiz-adv-x="991" d="M178 63v1381q0 29 20.5 50.5t51.5 21.5h2h262q125 0 211 -127q80 -115 80 -269q0 -74 -20.5 -143.5t-59.5 -124.5q-12 -18 -27 -33q47 -33 86 -88q86 -127 86 -301q0 -84 -22.5 -160.5t-63.5 -140.5q-47 -66 -107.5 -102.5t-125.5 -36.5h-291q-2 0 -4 2q-2 -2 -6 -2 q-31 0 -51.5 21.5t-20.5 51.5zM322 135h229q29 0 58.5 20.5t54.5 55.5q31 45 47 102.5t16 116.5q0 61 -16.5 118.5t-46.5 100.5q-51 76 -113 76h-229v-590zM322 870h192q25 0 51.5 19.5t47 53.5t33.5 79t13 98t-13 98.5t-33.5 79t-47 53t-51.5 19.5h-192v-500z" />
+<glyph unicode="c" horiz-adv-x="991" d="M166 340v37v788q0 94 29.5 164t76.5 115t106.5 66.5t119.5 21.5q37 0 101.5 -14.5t123.5 -67.5q41 -35 79 -102.5t38 -182.5q0 -31 -21.5 -52t-52.5 -21t-52.5 21.5t-21.5 51.5q0 76 -23.5 120t-56 65.5t-64.5 27.5t-50 6q-35 0 -67 -12t-54 -35q-63 -57 -64 -172v-792 v-6v-21.5t4.5 -47.5t15.5 -59.5t34 -56.5q45 -49 133 -49q92 0 137 51q23 25 34 53.5t16 55t5 45.5v18q-2 31 18.5 53.5t51.5 24.5q29 2 52.5 -18.5t25.5 -48.5v-31t-9 -68q-18 -115 -86 -184q-91 -98 -245 -98t-242 98q-35 35 -55.5 84t-30.5 108q-6 37 -6 64z" />
+<glyph unicode="d" horiz-adv-x="976" d="M176 61v1381q0 29 20.5 50t51.5 21h112h158q61 0 120.5 -21.5t107 -66.5t77 -114.5t29.5 -163.5v-789q0 -96 -29.5 -164.5t-77 -114.5t-107 -67.5t-120.5 -21.5h-158h-112q-31 0 -51.5 21.5t-20.5 49.5zM319 135h41h158q76 0 127 47q63 59 64 176v789q0 113 -64 176 q-53 47 -127 47h-158h-41v-1235z" />
+<glyph unicode="e" horiz-adv-x="974" d="M158 61v1381q0 29 21.5 50t51.5 21h543q31 0 52.5 -21.5t21.5 -49.5q0 -31 -21.5 -52.5t-52.5 -21.5h-471v-629h354q31 0 51.5 -21.5t20.5 -51.5q0 -29 -20.5 -50.5t-51.5 -21.5h-354v-459h471q31 0 52.5 -21.5t21.5 -52.5q0 -29 -21.5 -50t-52.5 -21h-543 q-31 0 -52 21.5t-21 49.5z" />
+<glyph unicode="f" horiz-adv-x="870" d="M180 61v1381q0 29 21.5 50t52.5 21h491q31 0 52.5 -21.5t21.5 -49.5q0 -31 -21.5 -52.5t-52.5 -21.5h-419v-629h303q31 0 51 -21.5t20 -51.5q0 -29 -20.5 -50.5t-50.5 -21.5h-303v-533q0 -29 -21.5 -50t-50.5 -21q-31 0 -52.5 21.5t-21.5 49.5z" />
+<glyph unicode="g" horiz-adv-x="976" d="M142 326v15q0 14 1 21v803q0 94 30 164t77 115t106.5 66.5t120.5 21.5q131 0 223 -82q39 -35 75 -103.5t36 -183.5q0 -29 -21.5 -50t-50.5 -21q-31 0 -52 21.5t-21 49.5q0 78 -24 123t-54.5 67.5t-62 29t-48.5 6.5q-74 0 -127 -48q-63 -59 -63 -176v-809v-2v-21.5t4 -48 t15 -61.5t36 -57q45 -49 135 -49q96 0 141 51q23 25 35.5 55.5t17.5 57t5 45.5v18v2v260h-144q-31 0 -52 21.5t-21 52.5q0 29 21.5 50.5t51.5 21.5h287v-402q1 -5 1 -19v-15q-1 -27 -7 -62q-23 -113 -88 -184q-92 -99 -248 -99t-241 99q-70 72 -89 194q-4 35 -5 62z" />
+<glyph unicode="h" horiz-adv-x="1040" d="M160 61v1381q0 29 21.5 50t49.5 21q31 0 52.5 -21.5t21.5 -49.5v-703h430v703q0 29 21.5 50t52.5 21q29 0 50.5 -21.5t21.5 -49.5v-1381q0 -29 -21.5 -50t-50.5 -21q-31 0 -52.5 21.5t-21.5 49.5v533h-430v-533q0 -29 -21.5 -50t-52.5 -21q-29 0 -50 21.5t-21 49.5z" />
+<glyph unicode="i" horiz-adv-x="583" d="M207 61v1381q0 29 20.5 50t51.5 21q29 0 50 -21.5t21 -49.5v-1381q0 -29 -21 -50t-50 -21q-31 0 -51.5 21.5t-20.5 49.5z" />
+<glyph unicode="j" horiz-adv-x="1009" d="M167 334q1 28 1 33q4 25 12 45q8 16 23.5 29.5t44.5 9.5t42 -19.5t17 -32.5q6 -20 4 -45q-1 -9 -1 -17q0 -27 5 -52q4 -29 15.5 -62t36.5 -57q45 -51 135 -51t141 51q23 25 35 54.5t17 56t5 46v21.5v4v1094q0 29 21.5 50t50.5 21q31 0 52.5 -21.5t21.5 -49.5l-2 -1092 q2 -8 1 -34.5t-7 -61.5q-10 -55 -32 -103.5t-56 -82.5q-92 -97 -248 -97t-242 97q-70 76 -88 196q-5 35 -5 61v9z" />
+<glyph unicode="k" horiz-adv-x="1040" d="M176 70v440v2v932q0 31 21.5 52.5t50.5 21.5q31 0 52.5 -21.5t21.5 -52.5v-678l438 713q16 27 45 34t55 -10q25 -16 32 -44.5t-9 -55.5l-322 -522l391 -772q9 -16 9 -33q0 -12 -4 -22q-9 -28 -35 -42q-14 -8 -33 -8q-20 0 -37.5 10.5t-28.5 28.5l-350 694l-151 -248v-419 q0 -31 -21.5 -51.5t-52.5 -20.5q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="l" horiz-adv-x="856" d="M109 61v1381q0 29 21.5 50t49.5 21q31 0 51.5 -21.5t20.5 -49.5v-1307h473q29 0 50.5 -21.5t21.5 -52.5q0 -29 -21.5 -50t-50.5 -21h-545q-29 0 -50 21.5t-21 49.5z" />
+<glyph unicode="m" horiz-adv-x="1167" d="M139 61v1381v4v2v2q2 0 2 2v2v4q2 4 6 17l3 2v2l2 2v2q2 0 2 2q4 4 5 6t5 4l2 2q0 2 2 2h2v2h2q0 2 2 2h2v2h2h2q0 2 2 2t2 1t2 1h2l2 2h3h2h2q0 2 2 2h2h4h4h2h2h2h2h2h2h2h2l2 -2q8 0 17 -4q2 -2 4 -2q0 -2 2 -2l2 -2q2 0 4 -2q6 -6 10 -8q0 -2 2 -2v-2l2 -2v-2 q2 0 2 -2l2 -2v-2l2 -2l310 -607l309 607v2l2 2v2h2v2l2 2q0 2 2 2v2q8 8 12 10q0 2 3 2h2q0 2 2 2v2h2h2q0 2 2 2q2 2 5 2t7 2h2h2q0 2 2 2h2h2h2h2h4h5h4h2h2h2v-2h2h2h2h2v-2h4l2 -2h2l2 -2h4v-2h2v-2h2l2 -2q2 0 3 -2h2l2 -2q4 -2 8 -10q2 0 2 -2l2 -2v-2l2 -2l2 -2 q4 -8 4 -15v-2h2v-4v-2v-2v-2v-2v-4v-1381q0 -29 -20.5 -50t-51.5 -21q-29 0 -50 21.5t-21 49.5v1080l-234 -457q-10 -29 -35 -41q-20 -8 -32 -8q-10 0 -17.5 2t-15.5 6q-27 12 -37 41l-231 457v-1080q0 -29 -21.5 -50t-50.5 -21q-31 0 -52.5 21.5t-21.5 49.5z" />
+<glyph unicode="n" horiz-adv-x="1038" d="M158 68v1378v4v2v2v2v2v2h2v4v2v2l2 2v5q2 0 2 2t1 2t1 2v2h2v2q0 2 2 2v2l2 2l2 2q0 2 2 2q0 2 1 2t1 2q2 0 2 2h2l2 2l2 2q2 0 2 2h2l3 2h2l2 2h2q4 4 8 4.5t8 2.5h2q4 2 16 2h5h2q2 0 2 -2h2h2h4q2 -2 4 -2l2 -3h4l2 -2q2 0 4 -2h2q0 -2 2 -2l2 -2h2v-2h2q0 -2 3 -2 q0 -2 2 -2q2 -2 2 -4q2 0 2 -2h2v-2h2v-2q0 -2 2 -2v-2l2 -2q0 -2 1 -2t1 -2l2 -4l459 -1059v1032q0 29 20.5 50.5t50.5 21.5q29 0 50.5 -21.5t21.5 -50.5v-1378v-7v-2v-2v-2v-2l-2 -2v-2v-4l-2 -2v-4q-2 0 -2 -2v-2l-2 -2v-2q-2 0 -2 -2v-2h-2v-2l-2 -2q0 -2 -2 -2 q0 -2 -1 -2.5t-1 -2.5l-2 -2q-2 0 -2 -2h-3l-2 -2q0 -2 -2 -2l-2 -2h-2q0 -2 -2 -2h-2v-2h-2l-2 -2q-8 -4 -16 -4q-4 -2 -15 -2h-2h-2h-2h-4q-4 0 -6 2h-4q-4 2 -5 2t-5 2q-2 2 -4 2t-5 2l-2 2l-2 2h-2q0 2 -2 2l-2 2l-2 2l-2 2l-2 2q-2 2 -2 5q-2 0 -2 2l-2 2q-2 2 -2 6 q-2 2 -2 3t-2 3l-459 1057v-1030q0 -29 -20.5 -50.5t-51.5 -21.5q-29 0 -50 21.5t-21 50.5z" />
+<glyph unicode="o" horiz-adv-x="927" d="M129 321.5q0 26.5 2 36.5v801q0 94 29.5 164t77 116t106.5 67.5t121 21.5q37 0 100.5 -14.5t124.5 -67.5q20 -18 41 -43t37 -60.5t27.5 -80.5t11.5 -103v-815v-33.5t-6 -60.5q-20 -113 -88 -187q-92 -98 -248 -98t-244 98q-68 74 -86 195q-6 37 -6 63.5zM274 327.5 q0 -20.5 4.5 -49t15.5 -61.5t36 -57q45 -49 135 -49q92 0 141 51q23 25 35 54.5t17.5 56t5.5 45v20.5v4v817q0 78 -25 122t-57.5 66.5t-66.5 28.5t-50 6q-76 0 -127 -47q-63 -59 -64 -176v-803v-6v-22.5z" />
+<glyph unicode="p" horiz-adv-x="976" d="M147 61v1379q0 43 37 63q14 12 37 13h301q66 0 126.5 -40t107.5 -112q41 -66 63.5 -145.5t22.5 -161.5q0 -84 -22.5 -164t-63.5 -145q-47 -72 -107.5 -111t-126.5 -39h-231v-537q0 -31 -20.5 -51t-51.5 -20q-29 0 -50.5 20.5t-21.5 50.5zM291 741h231q27 0 56.5 21.5 t54.5 62.5q31 47 47 107.5t16 124.5q0 61 -16 121.5t-47 107.5q-25 41 -54.5 62.5t-56.5 21.5h-231v-629z" />
+<glyph unicode="q" horiz-adv-x="1024" d="M184 325.5q0 26.5 2 36.5v801q0 94 30 164t77 116t106.5 67.5t118.5 21.5q39 0 102.5 -14.5t124.5 -67.5q20 -18 41 -43t37.5 -60.5t27.5 -80.5t11 -103v-815v-33.5t-6 -60.5q-18 -94 -70 -166l84 -96q18 -20 18 -46v-6q-3 -30 -26 -51q-20 -16 -47 -16q-35 0 -55 25 l-88 102q-68 -31 -152 -31q-156 0 -244 99q-68 74 -86 194q-6 37 -6 63.5zM330 331.5q0 -20.5 4 -49t15 -61t36 -57.5q45 -49 135 -49q92 0 142 51q23 25 35 54.5t17 56t5 45v20.5v6v815q0 78 -24.5 122t-58.5 66.5t-66.5 28.5t-51.5 6q-74 0 -125 -47q-63 -59 -63 -176 v-803v-6v-22.5z" />
+<glyph unicode="r" horiz-adv-x="1005" d="M162 61v1379q0 31 21.5 52t49.5 21h306q66 0 126 -39.5t107 -111.5q41 -66 63.5 -145.5t22.5 -161.5q0 -84 -22.5 -164t-63.5 -146q-51 -78 -110 -112l237 -543q7 -16 7 -31q0 -13 -5 -25q-10 -28 -39 -38q-8 -4 -15 -5t-13 -1q-23 0 -40.5 10t-27.5 33l-246 563h-213 v-535q0 -31 -21.5 -51t-52.5 -20q-29 0 -50 20.5t-21 50.5zM307 739h232q27 0 56.5 22.5t53.5 61.5q31 47 48.5 107.5t17.5 124.5q0 61 -17.5 121.5t-48.5 107.5q-25 41 -54.5 62.5t-55.5 21.5h-232v-629z" />
+<glyph unicode="s" horiz-adv-x="958" d="M127 344q0 31 21.5 51.5t52.5 20.5q29 0 49 -20.5t20 -51.5q0 -68 19.5 -111t50.5 -66.5t68.5 -32.5t74.5 -9q20 0 58.5 5t75 27.5t64.5 65.5t28 121q0 76 -21.5 133.5t-59.5 102.5t-87 82.5t-105 76.5q-49 35 -99 74t-91 86q-96 113 -99 260q0 8 1.5 33t7.5 57 q18 104 82 174q92 96 247 97q158 0 244 -97q31 -35 49.5 -80t22.5 -98q4 -37 3 -62.5t-3 -29.5q-6 -27 -15 -47q-10 -16 -24 -28.5t-43 -8.5t-41 21.5t-16 35.5q-6 23 -3 48q4 29 0 55q-4 23 -12 50.5t-26 49.5q-41 49 -136 49q-94 0 -141 -53q-23 -23 -34 -51.5t-15 -50.5 q-6 -29 -4 -56v-6q0 -51 16.5 -92t46 -76t71.5 -68.5t95 -72.5q59 -39 115.5 -83t105.5 -103q111 -135 111 -322q0 -94 -32 -162.5t-84 -112.5t-118.5 -65.5t-134.5 -21.5q-143 0 -241 81q-39 33 -77 99.5t-38 181.5z" />
+<glyph unicode="t" horiz-adv-x="911" d="M82 1440q0 31 21.5 52t52.5 21h643q29 0 50 -21.5t21 -51.5q0 -29 -21.5 -50.5t-49.5 -21.5h-248v-1307q0 -31 -20.5 -51t-51.5 -20q-29 0 -50 20.5t-21 50.5v1307h-252q-31 0 -52.5 21.5t-21.5 50.5z" />
+<glyph unicode="u" horiz-adv-x="1001" d="M158 325.5v36.5v1080q0 29 21.5 50t49.5 21q31 0 52.5 -21.5t21.5 -49.5v-1082v-6q0 -2 -1 -22.5t4 -49t16.5 -61.5t33.5 -57q45 -49 136 -49q94 0 143 51q23 25 35 54.5t16 58.5q6 31 4 63v6v1092q0 31 21.5 52t52.5 21q29 0 50.5 -21.5t21.5 -51.5v-1092q0 -8 -1 -33.5 t-8 -60.5q-18 -113 -88 -186q-89 -99 -247 -99q-154 0 -242 99q-70 78 -86 194q-6 37 -6 63.5z" />
+<glyph unicode="v" horiz-adv-x="927" d="M109 1425q-2 8 -2 16q0 21 12 39q16 26 45 31q8 2 15 2q21 0 39 -13q26 -17 32 -46l211 -1038l211 1038q6 29 30 46q18 13 39 13q7 0 15 -2q31 -5 47 -31q12 -19 12 -39q0 -8 -2 -16l-276 -1366q-6 -25 -27 -41t-45 -16h-4h-6q-25 0 -45.5 16.5t-24.5 40.5z" />
+<glyph unicode="w" horiz-adv-x="1255" d="M133 1432q-1 5 -1 10q0 23 16 42q18 23 49 27q5 1 10 1q23 0 42 -15q23 -18 27 -47l111 -1061l162 574l2 2v2q0 2 2 2v2v2l4 4v2l2 2l2 2q0 2 2 2v2h2v2l2 2q2 0 2 2h2v2l2 2q4 4 9.5 5.5t9.5 5.5h4l2 2h2h2h2h2v2h2h2h2h2h2h2h3h2h2h2h2l2 -2h2h4q2 0 2 -1t2 -1h4 q4 -4 8 -5.5t9 -5.5l2 -2q2 0 2 -2h2v-2h2v-2q2 0 2 -2h2v-2l2 -2l2 -2q0 -2 2 -2v-2v-2h2v-2v-2q2 0 2 -2l2 -2v-2v-2l168 -574l127 1061q3 30 27 48q18 15 41 14q6 0 12 -1q29 -3 48 -27q16 -19 16 -42q0 -5 -1 -10l-149 -1379q-2 -2 -2 -6v-2v-2l-2 -2v-2q0 -2 -2 -4 q0 -4 -4 -8q0 -2 -2 -4v-3h-2v-2l-3 -2v-2h-2v-2q-8 -8 -14 -10q0 -2 -2 -2l-2 -2h-2l-2 -2h-2q-6 -2 -14 -6h-3h-2h-2h-2h-4h-4h-4h-2h-2h-2q-4 0 -6 2h-4q-8 2 -17 8q-2 2 -4 3t-4 3l-4 4h-2l-2 2v2q-2 0 -2 1t-2 1v2q0 2 -1 2t-1 3h-2q0 4 -2 4v2l-2 4q0 2 -1 3t-1 3 l-216 670l-215 -670q-2 -2 -2 -6h-2q0 -4 -2 -4v-2l-2 -4q-2 -2 -2 -5q-2 0 -2 -2l-2 -2l-2 -2l-2 -2l-4 -4h-2q-4 -4 -8 -6q-6 -6 -15 -8h-4h-2q-2 -2 -4 -2h-2h-2h-4h-2h-2h-4h-2h-2h-2h-2h-3q-6 2 -14 6h-2h-2v2h-2l-2 2q-2 0 -2 2h-2q-4 2 -10 8v2h-2q0 2 -2 2q0 2 -3 2 v2l-2 2l-2 3l-6 12v4q-2 0 -2 2v2v2v2q-2 2 -2 6z" />
+<glyph unicode="x" horiz-adv-x="976" d="M143 88l217 563l48 119l-244 631q-10 29 1 56.5t40 37.5q14 5 27 5q16 0 30 -6q28 -11 37 -40l184 -481l187 481q10 29 36 40q14 6 29 6q13 0 27 -5q29 -10 41 -37.5t2 -56.5l-244 -631l264 -682q5 -13 5 -26q0 -14 -7 -30q-12 -28 -41 -38q-8 -4 -24 -4q-23 0 -41.5 11 t-26.5 34l-207 534l-204 -534q-8 -23 -27 -34t-41 -11q-16 0 -25 4q-29 10 -41 38q-7 15 -7 30q0 13 5 26z" />
+<glyph unicode="y" horiz-adv-x="913" d="M127 1413q-5 14 -5 27q0 15 6 28q11 27 40 37q15 6 30 6q13 0 26 -5q28 -11 38 -40l197 -499l196 499q10 29 38 40q13 5 27 5q15 0 30 -6q29 -10 40 -37q6 -13 6 -28q0 -13 -5 -27l-261 -655v-697q0 -31 -20.5 -51t-50.5 -20q-29 0 -50.5 20.5t-21.5 50.5v697z" />
+<glyph unicode="z" horiz-adv-x="976" d="M136 36q-5 13 -5 26q0 14 6 30l502 1276h-350q-29 0 -50.5 21.5t-21.5 50.5q0 31 21.5 52t50.5 21h456h5h4q0 -2 2 -2h2h2h2q2 0 4 -2h2h2l2 -2h4q0 -2 2 -2h2l2 -2l2 -2h2l2 -2q8 -6 13 -12l2 -2l2 -2v-2q2 0 2 -2l2 -2q2 -4 3 -8.5t3 -8.5q0 -2 2 -4v-2v-2v-2v-2v-4v-2 v-2v-2v-4v-4v-3v-2v-2q-2 0 -2 -2v-4q-2 0 -2 -2l-506 -1282h438q31 0 51.5 -21.5t20.5 -50.5q0 -31 -20.5 -52t-51.5 -21h-530q-25 0 -39 12q-29 10 -40 36z" />
+<glyph unicode="{" />
+<glyph unicode="|" />
+<glyph unicode="}" />
+<glyph unicode="~" />
+<glyph unicode="&#xad;" d="M559 684q0 29 21.5 50.5t50.5 21.5h418q29 0 50 -21.5t21 -50.5q0 -31 -21 -51.5t-50 -20.5h-418q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="&#x152;" horiz-adv-x="1497" />
+<glyph unicode="&#x2c6;" />
+<glyph unicode="&#x2dc;" horiz-adv-x="765" d="M82 1211.5q2 17.5 20 35.5q16 16 34 20.5t32 0.5q16 -4 33 -15q2 -4 10 -8q4 -4 12 -7t19 -5q49 -12 106 27q72 49 130.5 53t96.5 -8q43 -12 67 -31t28 -25q8 -12 10 -26q2 -12 -1 -28.5t-20 -33.5q-16 -18 -31.5 -22t-29.5 0q-16 4 -33 12h2q-4 2 -10 6t-27 12 q-47 10 -100 -26q-47 -33 -88 -44.5t-76 -11.5q-20 0 -36.5 2.5t-30.5 6.5q-43 12 -68 30.5t-29 22.5q-12 14 -18 31q-4 14 -2 31.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="839" />
+<glyph unicode="&#x2001;" horiz-adv-x="1679" />
+<glyph unicode="&#x2002;" horiz-adv-x="839" />
+<glyph unicode="&#x2003;" horiz-adv-x="1679" />
+<glyph unicode="&#x2004;" horiz-adv-x="559" />
+<glyph unicode="&#x2005;" horiz-adv-x="419" />
+<glyph unicode="&#x2006;" horiz-adv-x="279" />
+<glyph unicode="&#x2007;" horiz-adv-x="279" />
+<glyph unicode="&#x2008;" horiz-adv-x="209" />
+<glyph unicode="&#x2009;" horiz-adv-x="335" />
+<glyph unicode="&#x200a;" horiz-adv-x="93" />
+<glyph unicode="&#x2010;" d="M559 684q0 29 21.5 50.5t50.5 21.5h418q29 0 50 -21.5t21 -50.5q0 -31 -21 -51.5t-50 -20.5h-418q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="&#x2011;" d="M559 684q0 29 21.5 50.5t50.5 21.5h418q29 0 50 -21.5t21 -50.5q0 -31 -21 -51.5t-50 -20.5h-418q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="&#x2012;" d="M559 684q0 29 21.5 50.5t50.5 21.5h418q29 0 50 -21.5t21 -50.5q0 -31 -21 -51.5t-50 -20.5h-418q-29 0 -50.5 20.5t-21.5 51.5z" />
+<glyph unicode="&#x2013;" />
+<glyph unicode="&#x2014;" />
+<glyph unicode="&#x2018;" d="M673 1602.5q7 29.5 32 46.5q25 16 53 8t45 -31l110 -180q16 -25 11.5 -53.5t-31.5 -44.5q-25 -14 -54.5 -7t-43.5 31l-113 176q-16 25 -9 54.5z" />
+<glyph unicode="&#x2019;" horiz-adv-x="485" d="M150 1384q-9 29 6 54l96 186q14 27 43 36t55 -5q27 -14 35 -43t-6 -53l-98 -187q-14 -27 -41 -36t-56 5q-25 14 -34 43z" />
+<glyph unicode="&#x201a;" />
+<glyph unicode="&#x201c;" d="M594 1614q8 28 35 43q27 14 55.5 5t42.5 -36l98 -188q14 -25 5.5 -54t-33.5 -43q-29 -14 -56.5 -4.5t-42.5 35.5l-98 189q-14 25 -6 53zM836 1614q8 28 34 43q27 14 55.5 5t43.5 -36l98 -188q14 -25 5 -54t-34 -43q-29 -14 -56.5 -4.5t-41.5 35.5l-98 189q-14 25 -6 53z " />
+<glyph unicode="&#x201d;" d="M613 1384q-9 29 5 56l101 190q14 27 43 36t55 -5q29 -14 37 -43t-6 -55l-100 -191q-14 -27 -43 -36t-58 5q-25 14 -34 43zM859 1384q-9 29 5 56l99 190q14 27 43.5 36t56.5 -5t35 -43t-6 -55l-101 -191q-14 -27 -41.5 -36t-56.5 5q-25 14 -34 43z" />
+<glyph unicode="&#x201e;" />
+<glyph unicode="&#x2022;" />
+<glyph unicode="&#x2026;" />
+<glyph unicode="&#x202f;" horiz-adv-x="335" />
+<glyph unicode="&#x2039;" />
+<glyph unicode="&#x205f;" horiz-adv-x="419" />
+<glyph unicode="&#x20ac;" />
+<glyph unicode="&#x2122;" horiz-adv-x="944" d="M61 1360q0 33 33 33h287q33 0 33 -33t-33 -33h-111v-418q0 -14 -9 -23t-21 -9q-33 0 -33 32v418h-113q-33 0 -33 33zM467 907v451v2v2v2v2q2 2 2 8h2v2q2 0 2 2l4 4q0 2 2 2h2v2h2h2v3h2l2 2h3h2h2h2h2h2h2h2l4 -2h2l2 -3h2v-2h2l4 -4h2v-2v-2h2v-2h2l138 -272l137 272h2 v2l2 2v2q2 2 3 2t3 2h2v2h2v3q4 0 6 2h2h2h2h2h3h2h2h2h2v-2h2h2v-3h2h2v-2h2v-2h2l4 -4v-2h2v-2q2 -2 2 -8h2v-2v-2v-2v-2v-451q0 -33 -33 -33q-12 0 -21 9.5t-9 23.5v318l-105 -205q-4 -4 -7 -9t-9 -10q-4 -2 -14 -2t-15 2q-12 6 -16 19l-105 205v-318q0 -14 -9 -23.5 t-21 -9.5q-33 0 -33 33z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1495" d="M0 0v1495h1495v-1495h-1495z" />
+</font>
+</defs></svg> 
Index: documentation/trunk/tutorial_sample_files/libraries/althor/interfaceConfig.xml
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/interfaceConfig.xml	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/interfaceConfig.xml	(revision 28599)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceConfig baseInterface="default">
+	<actionList>
+		<action class="PageAction" name="p">
+			<subaction name="home" xslt="pages/home.xsl"/>
+			<subaction name="about" xslt="pages/about.xsl"/>
+			<subaction name="debug" xslt="pages/debuginfo.xsl"/>
+			<subaction name="pref" xslt="pages/pref.xsl"/>
+			<subaction name="help" xslt="pages/help.xsl"/>
+			<subaction name="login" xslt="pages/login.xsl"/>
+			<subaction name="gli4gs3" xslt="gli4gs3.xsl"/>
+			<subaction name="nav" xslt="nav.xsl"/>
+			<!-- used for the collection header frame -->
+			<subaction name="html" xslt="html.xsl"/>
+			<!-- use to put an external page into a frame with a collection header-->
+		</action>
+
+		<action class="RSSAction" name="rss" xslt="pages/rss.xsl"/> 
+		<action class="QueryAction" name="q" xslt="pages/query.xsl"/>
+		<action class="GS2BrowseAction" name="b" xslt="pages/classifier.xsl"/>
+		<action class="DocumentAction" name="d" xslt="pages/document.xsl"/>
+
+		<action class="AppletAction" name="a" xslt="pages/applet.xsl"/>
+		<action class="XMLDocumentAction" name="xd">
+			<subaction name="toc" xslt="pages/document-toc.xsl"/>
+			<subaction name="text" xslt="pages/document-content.xsl"/>
+		</action>
+		<action class="ProcessAction" name="pr" xslt="process.xsl"/>
+		<action class="SystemAction" name="s" xslt="pages/system.xsl"/>
+
+		<action class="FormatAction" name="f"/>
+		<!-- xslt='formatString.xsl'/> -->
+
+		<action class="GeneralAction" name="g">
+			<subaction name="authen" xslt="pages/authen.xsl"/>
+			<subaction name="berry" xslt="pages/berry.xsl"/>
+			<subaction name="documentbasket" xslt="pages/documentbasket.xsl"/>
+		</action>
+
+		<action class="DepositorAction" name="de" xslt="pages/depositor_home.xsl">
+			<subaction name="getwizard" xslt="depositor/compiledDepositor.xsl"/>
+		</action>
+	</actionList>
+	<languageList>
+		<language name="en">
+			<displayItem name="name">English</displayItem>
+		</language>
+	</languageList>
+</interfaceConfig>
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/css3-mediaqueries.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/css3-mediaqueries.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/css3-mediaqueries.js	(revision 28599)
@@ -0,0 +1,779 @@
+if(typeof Object.create!=="function"){
+Object.create=function(o){
+function F(){
+};
+F.prototype=o;
+return new F();
+};
+}
+var ua={toString:function(){
+return navigator.userAgent;
+},test:function(s){
+return this.toString().toLowerCase().indexOf(s.toLowerCase())>-1;
+}};
+ua.version=(ua.toString().toLowerCase().match(/[\s\S]+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1];
+ua.webkit=ua.test("webkit");
+ua.gecko=ua.test("gecko")&&!ua.webkit;
+ua.opera=ua.test("opera");
+ua.ie=ua.test("msie")&&!ua.opera;
+ua.ie6=ua.ie&&document.compatMode&&typeof document.documentElement.style.maxHeight==="undefined";
+ua.ie7=ua.ie&&document.documentElement&&typeof document.documentElement.style.maxHeight!=="undefined"&&typeof XDomainRequest==="undefined";
+ua.ie8=ua.ie&&typeof XDomainRequest!=="undefined";
+var domReady=function(){
+var _1=[];
+var _2=function(){
+if(!arguments.callee.done){
+arguments.callee.done=true;
+for(var i=0;i<_1.length;i++){
+_1[i]();
+}
+}
+};
+if(document.addEventListener){
+document.addEventListener("DOMContentLoaded",_2,false);
+}
+if(ua.ie){
+(function(){
+try{
+document.documentElement.doScroll("left");
+}
+catch(e){
+setTimeout(arguments.callee,50);
+return;
+}
+_2();
+})();
+document.onreadystatechange=function(){
+if(document.readyState==="complete"){
+document.onreadystatechange=null;
+_2();
+}
+};
+}
+if(ua.webkit&&document.readyState){
+(function(){
+if(document.readyState!=="loading"){
+_2();
+}else{
+setTimeout(arguments.callee,10);
+}
+})();
+}
+window.onload=_2;
+return function(fn){
+if(typeof fn==="function"){
+_1[_1.length]=fn;
+}
+return fn;
+};
+}();
+var cssHelper=function(){
+var _3={BLOCKS:/[^\s{][^{]*\{(?:[^{}]*\{[^{}]*\}[^{}]*|[^{}]*)*\}/g,BLOCKS_INSIDE:/[^\s{][^{]*\{[^{}]*\}/g,DECLARATIONS:/[a-zA-Z\-]+[^;]*:[^;]+;/g,RELATIVE_URLS:/url\(['"]?([^\/\)'"][^:\)'"]+)['"]?\)/g,REDUNDANT_COMPONENTS:/(?:\/\*([^*\\\\]|\*(?!\/))+\*\/|@import[^;]+;)/g,REDUNDANT_WHITESPACE:/\s*(,|:|;|\{|\})\s*/g,MORE_WHITESPACE:/\s{2,}/g,FINAL_SEMICOLONS:/;\}/g,NOT_WHITESPACE:/\S+/g};
+var _4,_5=false;
+var _6=[];
+var _7=function(fn){
+if(typeof fn==="function"){
+_6[_6.length]=fn;
+}
+};
+var _8=function(){
+for(var i=0;i<_6.length;i++){
+_6[i](_4);
+}
+};
+var _9={};
+var _a=function(n,v){
+if(_9[n]){
+var _b=_9[n].listeners;
+if(_b){
+for(var i=0;i<_b.length;i++){
+_b[i](v);
+}
+}
+}
+};
+var _c=function(_d,_e,_f){
+if(ua.ie&&!window.XMLHttpRequest){
+window.XMLHttpRequest=function(){
+return new ActiveXObject("Microsoft.XMLHTTP");
+};
+}
+if(!XMLHttpRequest){
+return "";
+}
+var r=new XMLHttpRequest();
+try{
+r.open("get",_d,true);
+r.setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest");
+}
+catch(e){
+_f();
+return;
+}
+var _10=false;
+setTimeout(function(){
+_10=true;
+},5000);
+document.documentElement.style.cursor="progress";
+r.onreadystatechange=function(){
+if(r.readyState===4&&!_10){
+if(!r.status&&location.protocol==="file:"||(r.status>=200&&r.status<300)||r.status===304||navigator.userAgent.indexOf("Safari")>-1&&typeof r.status==="undefined"){
+_e(r.responseText);
+}else{
+_f();
+}
+document.documentElement.style.cursor="";
+r=null;
+}
+};
+r.send("");
+};
+var _11=function(_12){
+_12=_12.replace(_3.REDUNDANT_COMPONENTS,"");
+_12=_12.replace(_3.REDUNDANT_WHITESPACE,"$1");
+_12=_12.replace(_3.MORE_WHITESPACE," ");
+_12=_12.replace(_3.FINAL_SEMICOLONS,"}");
+return _12;
+};
+var _13={mediaQueryList:function(s){
+var o={};
+var idx=s.indexOf("{");
+var lt=s.substring(0,idx);
+s=s.substring(idx+1,s.length-1);
+var mqs=[],rs=[];
+var qts=lt.toLowerCase().substring(7).split(",");
+for(var i=0;i<qts.length;i++){
+mqs[mqs.length]=_13.mediaQuery(qts[i],o);
+}
+var rts=s.match(_3.BLOCKS_INSIDE);
+if(rts!==null){
+for(i=0;i<rts.length;i++){
+rs[rs.length]=_13.rule(rts[i],o);
+}
+}
+o.getMediaQueries=function(){
+return mqs;
+};
+o.getRules=function(){
+return rs;
+};
+o.getListText=function(){
+return lt;
+};
+o.getCssText=function(){
+return s;
+};
+return o;
+},mediaQuery:function(s,mql){
+s=s||"";
+var not=false,_14;
+var exp=[];
+var _15=true;
+var _16=s.match(_3.NOT_WHITESPACE);
+for(var i=0;i<_16.length;i++){
+var _17=_16[i];
+if(!_14&&(_17==="not"||_17==="only")){
+if(_17==="not"){
+not=true;
+}
+}else{
+if(!_14){
+_14=_17;
+}else{
+if(_17.charAt(0)==="("){
+var _18=_17.substring(1,_17.length-1).split(":");
+exp[exp.length]={mediaFeature:_18[0],value:_18[1]||null};
+}
+}
+}
+}
+return {getList:function(){
+return mql||null;
+},getValid:function(){
+return _15;
+},getNot:function(){
+return not;
+},getMediaType:function(){
+return _14;
+},getExpressions:function(){
+return exp;
+}};
+},rule:function(s,mql){
+var o={};
+var idx=s.indexOf("{");
+var st=s.substring(0,idx);
+var ss=st.split(",");
+var ds=[];
+var dts=s.substring(idx+1,s.length-1).split(";");
+for(var i=0;i<dts.length;i++){
+ds[ds.length]=_13.declaration(dts[i],o);
+}
+o.getMediaQueryList=function(){
+return mql||null;
+};
+o.getSelectors=function(){
+return ss;
+};
+o.getSelectorText=function(){
+return st;
+};
+o.getDeclarations=function(){
+return ds;
+};
+o.getPropertyValue=function(n){
+for(var i=0;i<ds.length;i++){
+if(ds[i].getProperty()===n){
+return ds[i].getValue();
+}
+}
+return null;
+};
+return o;
+},declaration:function(s,r){
+var idx=s.indexOf(":");
+var p=s.substring(0,idx);
+var v=s.substring(idx+1);
+return {getRule:function(){
+return r||null;
+},getProperty:function(){
+return p;
+},getValue:function(){
+return v;
+}};
+}};
+var _19=function(el){
+if(typeof el.cssHelperText!=="string"){
+return;
+}
+var o={mediaQueryLists:[],rules:[],selectors:{},declarations:[],properties:{}};
+var _1a=o.mediaQueryLists;
+var ors=o.rules;
+var _1b=el.cssHelperText.match(_3.BLOCKS);
+if(_1b!==null){
+for(var i=0;i<_1b.length;i++){
+if(_1b[i].substring(0,7)==="@media "){
+_1a[_1a.length]=_13.mediaQueryList(_1b[i]);
+ors=o.rules=ors.concat(_1a[_1a.length-1].getRules());
+}else{
+ors[ors.length]=_13.rule(_1b[i]);
+}
+}
+}
+var oss=o.selectors;
+var _1c=function(r){
+var ss=r.getSelectors();
+for(var i=0;i<ss.length;i++){
+var n=ss[i];
+if(!oss[n]){
+oss[n]=[];
+}
+oss[n][oss[n].length]=r;
+}
+};
+for(i=0;i<ors.length;i++){
+_1c(ors[i]);
+}
+var ods=o.declarations;
+for(i=0;i<ors.length;i++){
+ods=o.declarations=ods.concat(ors[i].getDeclarations());
+}
+var ops=o.properties;
+for(i=0;i<ods.length;i++){
+var n=ods[i].getProperty();
+if(!ops[n]){
+ops[n]=[];
+}
+ops[n][ops[n].length]=ods[i];
+}
+el.cssHelperParsed=o;
+_4[_4.length]=el;
+return o;
+};
+var _1d=function(el,s){
+el.cssHelperText=_11(s||el.innerHTML);
+return _19(el);
+};
+var _1e=function(){
+_5=true;
+_4=[];
+var _1f=[];
+var _20=function(){
+for(var i=0;i<_1f.length;i++){
+_19(_1f[i]);
+}
+var _21=document.getElementsByTagName("style");
+for(i=0;i<_21.length;i++){
+_1d(_21[i]);
+}
+_5=false;
+_8();
+};
+var _22=document.getElementsByTagName("link");
+for(var i=0;i<_22.length;i++){
+var _23=_22[i];
+if(_23.getAttribute("rel").indexOf("style")>-1&&_23.href&&_23.href.length!==0&&!_23.disabled){
+_1f[_1f.length]=_23;
+}
+}
+if(_1f.length>0){
+var c=0;
+var _24=function(){
+c++;
+if(c===_1f.length){
+_20();
+}
+};
+var _25=function(_26){
+var _27=_26.href;
+_c(_27,function(_28){
+_28=_11(_28).replace(_3.RELATIVE_URLS,"url("+_27.substring(0,_27.lastIndexOf("/"))+"/$1)");
+_26.cssHelperText=_28;
+_24();
+},_24);
+};
+for(i=0;i<_1f.length;i++){
+_25(_1f[i]);
+}
+}else{
+_20();
+}
+};
+var _29={mediaQueryLists:"array",rules:"array",selectors:"object",declarations:"array",properties:"object"};
+var _2a={mediaQueryLists:null,rules:null,selectors:null,declarations:null,properties:null};
+var _2b=function(_2c,v){
+if(_2a[_2c]!==null){
+if(_29[_2c]==="array"){
+return (_2a[_2c]=_2a[_2c].concat(v));
+}else{
+var c=_2a[_2c];
+for(var n in v){
+if(v.hasOwnProperty(n)){
+if(!c[n]){
+c[n]=v[n];
+}else{
+c[n]=c[n].concat(v[n]);
+}
+}
+}
+return c;
+}
+}
+};
+var _2d=function(_2e){
+_2a[_2e]=(_29[_2e]==="array")?[]:{};
+for(var i=0;i<_4.length;i++){
+_2b(_2e,_4[i].cssHelperParsed[_2e]);
+}
+return _2a[_2e];
+};
+domReady(function(){
+var els=document.body.getElementsByTagName("*");
+for(var i=0;i<els.length;i++){
+els[i].checkedByCssHelper=true;
+}
+if(document.implementation.hasFeature("MutationEvents","2.0")||window.MutationEvent){
+document.body.addEventListener("DOMNodeInserted",function(e){
+var el=e.target;
+if(el.nodeType===1){
+_a("DOMElementInserted",el);
+el.checkedByCssHelper=true;
+}
+},false);
+}else{
+setInterval(function(){
+var els=document.body.getElementsByTagName("*");
+for(var i=0;i<els.length;i++){
+if(!els[i].checkedByCssHelper){
+_a("DOMElementInserted",els[i]);
+els[i].checkedByCssHelper=true;
+}
+}
+},1000);
+}
+});
+var _2f=function(d){
+if(typeof window.innerWidth!="undefined"){
+return window["inner"+d];
+}else{
+if(typeof document.documentElement!="undefined"&&typeof document.documentElement.clientWidth!="undefined"&&document.documentElement.clientWidth!=0){
+return document.documentElement["client"+d];
+}
+}
+};
+return {addStyle:function(s,_30){
+var el=document.createElement("style");
+el.setAttribute("type","text/css");
+document.getElementsByTagName("head")[0].appendChild(el);
+if(el.styleSheet){
+el.styleSheet.cssText=s;
+}else{
+el.appendChild(document.createTextNode(s));
+}
+el.addedWithCssHelper=true;
+if(typeof _30==="undefined"||_30===true){
+cssHelper.parsed(function(_31){
+var o=_1d(el,s);
+for(var n in o){
+if(o.hasOwnProperty(n)){
+_2b(n,o[n]);
+}
+}
+_a("newStyleParsed",el);
+});
+}else{
+el.parsingDisallowed=true;
+}
+return el;
+},removeStyle:function(el){
+return el.parentNode.removeChild(el);
+},parsed:function(fn){
+if(_5){
+_7(fn);
+}else{
+if(typeof _4!=="undefined"){
+if(typeof fn==="function"){
+fn(_4);
+}
+}else{
+_7(fn);
+_1e();
+}
+}
+},mediaQueryLists:function(fn){
+cssHelper.parsed(function(_32){
+fn(_2a.mediaQueryLists||_2d("mediaQueryLists"));
+});
+},rules:function(fn){
+cssHelper.parsed(function(_33){
+fn(_2a.rules||_2d("rules"));
+});
+},selectors:function(fn){
+cssHelper.parsed(function(_34){
+fn(_2a.selectors||_2d("selectors"));
+});
+},declarations:function(fn){
+cssHelper.parsed(function(_35){
+fn(_2a.declarations||_2d("declarations"));
+});
+},properties:function(fn){
+cssHelper.parsed(function(_36){
+fn(_2a.properties||_2d("properties"));
+});
+},broadcast:_a,addListener:function(n,fn){
+if(typeof fn==="function"){
+if(!_9[n]){
+_9[n]={listeners:[]};
+}
+_9[n].listeners[_9[n].listeners.length]=fn;
+}
+},removeListener:function(n,fn){
+if(typeof fn==="function"&&_9[n]){
+var ls=_9[n].listeners;
+for(var i=0;i<ls.length;i++){
+if(ls[i]===fn){
+ls.splice(i,1);
+i-=1;
+}
+}
+}
+},getViewportWidth:function(){
+return _2f("Width");
+},getViewportHeight:function(){
+return _2f("Height");
+}};
+}();
+domReady(function enableCssMediaQueries(){
+var _37;
+var _38={LENGTH_UNIT:/[0-9]+(em|ex|px|in|cm|mm|pt|pc)$/,RESOLUTION_UNIT:/[0-9]+(dpi|dpcm)$/,ASPECT_RATIO:/^[0-9]+\/[0-9]+$/,ABSOLUTE_VALUE:/^[0-9]*(\.[0-9]+)*$/};
+var _39=[];
+var _3a=function(){
+var id="css3-mediaqueries-test";
+var el=document.createElement("div");
+el.id=id;
+var _3b=cssHelper.addStyle("@media all and (width) { #"+id+" { width: 1px !important; } }",false);
+document.body.appendChild(el);
+var ret=el.offsetWidth===1;
+_3b.parentNode.removeChild(_3b);
+el.parentNode.removeChild(el);
+_3a=function(){
+return ret;
+};
+return ret;
+};
+var _3c=function(){
+_37=document.createElement("div");
+_37.style.cssText="position:absolute;top:-9999em;left:-9999em;"+"margin:0;border:none;padding:0;width:1em;font-size:1em;";
+document.body.appendChild(_37);
+if(_37.offsetWidth!==16){
+_37.style.fontSize=16/_37.offsetWidth+"em";
+}
+_37.style.width="";
+};
+var _3d=function(_3e){
+_37.style.width=_3e;
+var _3f=_37.offsetWidth;
+_37.style.width="";
+return _3f;
+};
+var _40=function(_41,_42){
+var l=_41.length;
+var min=(_41.substring(0,4)==="min-");
+var max=(!min&&_41.substring(0,4)==="max-");
+if(_42!==null){
+var _43;
+var _44;
+if(_38.LENGTH_UNIT.exec(_42)){
+_43="length";
+_44=_3d(_42);
+}else{
+if(_38.RESOLUTION_UNIT.exec(_42)){
+_43="resolution";
+_44=parseInt(_42,10);
+var _45=_42.substring((_44+"").length);
+}else{
+if(_38.ASPECT_RATIO.exec(_42)){
+_43="aspect-ratio";
+_44=_42.split("/");
+}else{
+if(_38.ABSOLUTE_VALUE){
+_43="absolute";
+_44=_42;
+}else{
+_43="unknown";
+}
+}
+}
+}
+}
+var _46,_47;
+if("device-width"===_41.substring(l-12,l)){
+_46=screen.width;
+if(_42!==null){
+if(_43==="length"){
+return ((min&&_46>=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44));
+}else{
+return false;
+}
+}else{
+return _46>0;
+}
+}else{
+if("device-height"===_41.substring(l-13,l)){
+_47=screen.height;
+if(_42!==null){
+if(_43==="length"){
+return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44));
+}else{
+return false;
+}
+}else{
+return _47>0;
+}
+}else{
+if("width"===_41.substring(l-5,l)){
+_46=document.documentElement.clientWidth||document.body.clientWidth;
+if(_42!==null){
+if(_43==="length"){
+return ((min&&_46>=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44));
+}else{
+return false;
+}
+}else{
+return _46>0;
+}
+}else{
+if("height"===_41.substring(l-6,l)){
+_47=document.documentElement.clientHeight||document.body.clientHeight;
+if(_42!==null){
+if(_43==="length"){
+return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44));
+}else{
+return false;
+}
+}else{
+return _47>0;
+}
+}else{
+if("device-aspect-ratio"===_41.substring(l-19,l)){
+return _43==="aspect-ratio"&&screen.width*_44[1]===screen.height*_44[0];
+}else{
+if("color-index"===_41.substring(l-11,l)){
+var _48=Math.pow(2,screen.colorDepth);
+if(_42!==null){
+if(_43==="absolute"){
+return ((min&&_48>=_44)||(max&&_48<_44)||(!min&&!max&&_48===_44));
+}else{
+return false;
+}
+}else{
+return _48>0;
+}
+}else{
+if("color"===_41.substring(l-5,l)){
+var _49=screen.colorDepth;
+if(_42!==null){
+if(_43==="absolute"){
+return ((min&&_49>=_44)||(max&&_49<_44)||(!min&&!max&&_49===_44));
+}else{
+return false;
+}
+}else{
+return _49>0;
+}
+}else{
+if("resolution"===_41.substring(l-10,l)){
+var res;
+if(_45==="dpcm"){
+res=_3d("1cm");
+}else{
+res=_3d("1in");
+}
+if(_42!==null){
+if(_43==="resolution"){
+return ((min&&res>=_44)||(max&&res<_44)||(!min&&!max&&res===_44));
+}else{
+return false;
+}
+}else{
+return res>0;
+}
+}else{
+return false;
+}
+}
+}
+}
+}
+}
+}
+}
+};
+var _4a=function(mq){
+var _4b=mq.getValid();
+var _4c=mq.getExpressions();
+var l=_4c.length;
+if(l>0){
+for(var i=0;i<l&&_4b;i++){
+_4b=_40(_4c[i].mediaFeature,_4c[i].value);
+}
+var not=mq.getNot();
+return (_4b&&!not||not&&!_4b);
+}
+};
+var _4d=function(mql){
+var mqs=mql.getMediaQueries();
+var t={};
+for(var i=0;i<mqs.length;i++){
+if(_4a(mqs[i])){
+t[mqs[i].getMediaType()]=true;
+}
+}
+var s=[],c=0;
+for(var n in t){
+if(t.hasOwnProperty(n)){
+if(c>0){
+s[c++]=",";
+}
+s[c++]=n;
+}
+}
+if(s.length>0){
+_39[_39.length]=cssHelper.addStyle("@media "+s.join("")+"{"+mql.getCssText()+"}",false);
+}
+};
+var _4e=function(_4f){
+for(var i=0;i<_4f.length;i++){
+_4d(_4f[i]);
+}
+if(ua.ie){
+document.documentElement.style.display="block";
+setTimeout(function(){
+document.documentElement.style.display="";
+},0);
+setTimeout(function(){
+cssHelper.broadcast("cssMediaQueriesTested");
+},100);
+}else{
+cssHelper.broadcast("cssMediaQueriesTested");
+}
+};
+var _50=function(){
+for(var i=0;i<_39.length;i++){
+cssHelper.removeStyle(_39[i]);
+}
+_39=[];
+cssHelper.mediaQueryLists(_4e);
+};
+var _51=0;
+var _52=function(){
+var _53=cssHelper.getViewportWidth();
+var _54=cssHelper.getViewportHeight();
+if(ua.ie){
+var el=document.createElement("div");
+el.style.position="absolute";
+el.style.top="-9999em";
+el.style.overflow="scroll";
+document.body.appendChild(el);
+_51=el.offsetWidth-el.clientWidth;
+document.body.removeChild(el);
+}
+var _55;
+var _56=function(){
+var vpw=cssHelper.getViewportWidth();
+var vph=cssHelper.getViewportHeight();
+if(Math.abs(vpw-_53)>_51||Math.abs(vph-_54)>_51){
+_53=vpw;
+_54=vph;
+clearTimeout(_55);
+_55=setTimeout(function(){
+if(!_3a()){
+_50();
+}else{
+cssHelper.broadcast("cssMediaQueriesTested");
+}
+},500);
+}
+};
+window.onresize=function(){
+var x=window.onresize||function(){
+};
+return function(){
+x();
+_56();
+};
+}();
+};
+var _57=document.documentElement;
+_57.style.marginLeft="-32767px";
+setTimeout(function(){
+_57.style.marginTop="";
+},20000);
+return function(){
+if(!_3a()){
+cssHelper.addListener("newStyleParsed",function(el){
+_4e(el.cssHelperParsed.mediaQueryLists);
+});
+cssHelper.addListener("cssMediaQueriesTested",function(){
+if(ua.ie){
+_57.style.width="1px";
+}
+setTimeout(function(){
+_57.style.width="";
+_57.style.marginLeft="";
+},0);
+cssHelper.removeListener("cssMediaQueriesTested",arguments.callee);
+});
+_3c();
+_50();
+}else{
+_57.style.marginLeft="";
+}
+_52();
+};
+}());
+try{
+document.execCommand("BackgroundImageCache",false,true);
+}
+catch(e){
+}
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/custom.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/custom.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/custom.js	(revision 28599)
@@ -0,0 +1,237 @@
+// Jquery with no conflict
+jQuery(document).ready(function($) {
+	
+	//##########################################
+	// Tweet feed
+	//##########################################
+	
+	$("#tweets").tweet({
+        count: 2,
+        username: "ansimuz"
+    });
+    
+    //##########################################
+	// Slider
+	//##########################################
+	
+	$('#slider').nivoSlider({
+		effect: 'random', // Specify sets like: 'fold,fade,sliceDown'
+		animSpeed: 500, // Slide transition speed
+        pauseTime: 3000, // How long each slide will show
+        startSlide: 0, // Set starting Slide (0 index)
+        controlNav: false // 1,2,3... navigation
+	});
+	
+	
+	 //##########################################
+	// Slider - project
+	//##########################################
+	
+	$('#slider-project').nivoSlider({
+		effect: 'random', // Specify sets like: 'fold,fade,sliceDown'
+		animSpeed: 500, // Slide transition speed
+        pauseTime: 3000, // How long each slide will show
+        startSlide: 0, // Set starting Slide (0 index)
+        controlNav: true // 1,2,3... navigation
+	});
+	
+		//##########################################
+	// Tool tips
+	//##########################################
+	
+	
+	$('.poshytip').poshytip({
+    	className: 'tip-yellow',
+		showTimeout: 1,
+		alignTo: 'target',
+		alignX: 'center',
+		offsetY: 5,
+		allowTipHover: false
+    });
+	
+   
+    
+    $('.form-poshytip').poshytip({
+		className: 'tip-yellow',
+		showOn: 'focus',
+		alignTo: 'target',
+		alignX: 'right',
+		alignY: 'center',
+		offsetX: 5
+	});
+	
+	//##########################################
+	// Superfish
+	//##########################################
+	
+	$(".sf-menu").superfish({ 
+        animation: {height:'show'},   // slide-down effect without fade-in 
+        delay:     800 ,              // 1.2 second delay on mouseout 
+        autoArrows:  false,
+        speed: 100
+    });
+    
+    //##########################################
+	// Accordion box
+	//##########################################
+
+	$('.accordion-container').hide(); 
+	$('.accordion-trigger:first').addClass('active').next().show();
+	$('.accordion-trigger').click(function(){
+		if( $(this).next().is(':hidden') ) { 
+			$('.accordion-trigger').removeClass('active').next().slideUp();
+			$(this).toggleClass('active').next().slideDown();
+		}
+		return false;
+	});
+	
+	//##########################################
+	// Toggle box
+	//##########################################
+	
+	$('.toggle-trigger').click(function() {
+		$(this).next().toggle('slow');
+		$(this).toggleClass("active");
+		return false;
+	}).next().hide();
+    
+    //##########################################
+	// Tabs
+	//##########################################
+
+    $(".tabs").tabs("div.panes > div", {effect: 'fade'});
+    
+    //##########################################
+	// Create Combo Navi
+	//##########################################	
+		
+	// Create the dropdown base
+	$("<select id='comboNav' />").appendTo("#combo-holder");
+	
+	// Create default option "Go to..."
+	$("<option />", {
+		"selected": "selected",
+		"value"   : "",
+		"text"    : "Navigation"
+	}).appendTo("#combo-holder select");
+	
+	// Populate dropdown with menu items
+	$("#nav a").each(function() {
+		var el = $(this);		
+		var label = $(this).parent().parent().attr('id');
+		var sub = (label == 'nav') ? '' : '- ';
+		
+		$("<option />", {
+		 "value"   : el.attr("href"),
+		 "text"    :  sub + el.text()
+		}).appendTo("#combo-holder select");
+	});
+
+	
+	//##########################################
+	// Combo Navigation action
+	//##########################################
+	
+	$("#comboNav").change(function() {
+	  location = this.options[this.selectedIndex].value;
+	});
+    
+    //##########################################
+	// Work - Isotope 
+	//##########################################
+
+	
+	var $container = $('#filter-container');
+	
+	$container.imagesLoaded( function(){
+		$container.isotope({
+			itemSelector : 'li',
+			filter: '*',
+			resizable: false,
+			animationEngine: 'jquery'			  
+		});
+	});
+	
+	// filter buttons
+		
+	$('#filter-buttons a').click(function(){
+	
+		// select current
+		var $optionSet = $(this).parents('#filter-buttons');
+	    $optionSet.find('.selected').removeClass('selected');
+	    $(this).addClass('selected');
+    
+		var selector = $(this).attr('data-filter');
+		$container.isotope({ filter: selector });
+		return false;
+	});
+    
+    //##########################################
+	// Home - Isotope 
+	//##########################################
+
+	
+	var $container_home = $('#filter-container-feature');
+	
+	$container_home.imagesLoaded( function(){
+		$container_home.isotope({
+			itemSelector : 'li',
+		});
+	});
+	
+   
+  /*
+  * Commented due to relayout issue
+  *
+  // modified Isotope methods for gutters in masonry
+  $.Isotope.prototype._getMasonryGutterColumns = function() {
+    var gutter = this.options.masonry && this.options.masonry.gutterWidth || 0;
+        containerWidth = this.element.width();
+  
+    this.masonry.columnWidth = this.options.masonry && this.options.masonry.columnWidth ||
+                  // or use the size of the first item
+                  this.$filteredAtoms.outerWidth(true) ||
+                  // if there's no items, use size of container
+                  containerWidth;
+
+    this.masonry.columnWidth += gutter;
+
+    this.masonry.cols = Math.floor( ( containerWidth + gutter ) / this.masonry.columnWidth );
+    this.masonry.cols = Math.max( this.masonry.cols, 1 );
+  };
+
+  $.Isotope.prototype._masonryReset = function() {
+    // layout-specific props
+    this.masonry = {};
+    // FIXME shouldn't have to call this again
+    this._getMasonryGutterColumns();
+    var i = this.masonry.cols;
+    this.masonry.colYs = [];
+    while (i--) {
+      this.masonry.colYs.push( 0 );
+    }
+  };
+
+  $.Isotope.prototype._masonryResizeChanged = function() {
+    var prevSegments = this.masonry.cols;
+    // update cols/rows
+    this._getMasonryGutterColumns();
+    // return if updated cols/rows is not equal to previous
+    return ( this.masonry.cols !== prevSegments );
+  };
+  */
+
+	//##########################################
+	// Resize event
+	//##########################################
+	
+	$(window).resize(function() {
+		
+		var w = $(window).width();
+		//console.log(w);
+	
+		$container_home.isotope('reLayout');
+	
+	}).trigger("resize");
+  
+});
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/form-validation.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/form-validation.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/form-validation.js	(revision 28599)
@@ -0,0 +1,74 @@
+jQuery(document).ready(function($){
+
+	// hide messages 
+	$("#error").hide();
+	$("#sent-form-msg").hide();
+	
+	// on submit...
+	$("#contactForm #submit").click(function() {
+		$("#error").hide();
+		
+		//required:
+		
+		//name
+		var name = $("input#name").val();
+		if(name == ""){
+			$("#error").fadeIn().text("Name required.");
+			$("input#name").focus();
+			return false;
+		}
+		
+		// email
+		var email = $("input#email").val();
+		if(email == ""){
+			$("#error").fadeIn().text("Email required");
+			$("input#email").focus();
+			return false;
+		}
+		
+		// web
+		var web = $("input#web").val();
+		if(web == ""){
+			$("#error").fadeIn().text("Web required");
+			$("input#web").focus();
+			return false;
+		}
+		
+		// comments
+		var comments = $("#comments").val();
+		
+		// send mail php
+		var sendMailUrl = $("#sendMailUrl").val();
+		
+		//to, from & subject
+		var to = $("#to").val();
+		var from = $("#from").val();
+		var subject = $("#subject").val();
+		
+		// data string
+		var dataString = 'name='+ name
+						+ '&email=' + email        
+						+ '&web=' + web
+						+ '&comments=' + comments
+						+ '&to=' + to
+						+ '&from=' + from
+						+ '&subject=' + subject;						         
+		// ajax
+		$.ajax({
+			type:"POST",
+			url: sendMailUrl,
+			data: dataString,
+			success: success()
+		});
+	});  
+		
+		
+	// on success...
+	 function success(){
+	 	$("#sent-form-msg").fadeIn();
+	 	$("#contactForm").fadeOut();
+	 }
+	
+    return false;
+});
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery-1.7.1.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery-1.7.1.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery-1.7.1.min.js	(revision 28599)
@@ -0,0 +1,4 @@
+/*! jQuery v1.7.1 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 cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(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;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=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)?parseFloat(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<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\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.1",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(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)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&&typeof a=="object"&&"setInterval"in a},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){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(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?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(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.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:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});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;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},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){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},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<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-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.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];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<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),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=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\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),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<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=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;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?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;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){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<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\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;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=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 b<c[3]-0},gt:function(a,b,c){return b>c[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<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=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));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;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",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 href='#'></a>",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="<p class='TEST'></p>";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="<div class='test e'></div><div class='test'></div>";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;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=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<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-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|canvas|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:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_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<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},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){if(a===b)return this[0]&&this[0].nodeType===1?this[0].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(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?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||!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;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","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=bv.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(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.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(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$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)));return c}),c.documentElement.currentStyle&&(bB=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)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,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)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery.isotope.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery.isotope.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery.isotope.min.js	(revision 28599)
@@ -0,0 +1,11 @@
+/**
+ * Isotope v1.5.12
+ * An exquisite jQuery plugin for magical layouts
+ * http://isotope.metafizzy.co
+ *
+ * Commercial use requires one-time license fee
+ * http://metafizzy.co/#licenses
+ *
+ * Copyright 2012 David DeSandro / Metafizzy
+ */
+(function(a,b,c){"use strict";var d=a.document,e=a.Modernizr,f=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},g="Moz Webkit O Ms".split(" "),h=function(a){var b=d.documentElement.style,c;if(typeof b[a]=="string")return a;a=f(a);for(var e=0,h=g.length;e<h;e++){c=g[e]+a;if(typeof b[c]=="string")return c}},i=h("transform"),j=h("transitionProperty"),k={csstransforms:function(){return!!i},csstransforms3d:function(){var a=!!h("perspective");if(a){var c=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),d="@media ("+c.join("transform-3d),(")+"modernizr)",e=b("<style>"+d+"{#modernizr{height:3px}}"+"</style>").appendTo("head"),f=b('<div id="modernizr" />').appendTo("html");a=f.height()===3,f.remove(),e.remove()}return a},csstransitions:function(){return!!j}},l;if(e)for(l in k)e.hasOwnProperty(l)||e.addTest(l,k[l]);else{e=a.Modernizr={_version:"1.6ish: miniModernizr for Isotope"};var m=" ",n;for(l in k)n=k[l](),e[l]=n,m+=" "+(n?"":"no-")+l;b("html").addClass(m)}if(e.csstransforms){var o=e.csstransforms3d?{translate:function(a){return"translate3d("+a[0]+"px, "+a[1]+"px, 0) "},scale:function(a){return"scale3d("+a+", "+a+", 1) "}}:{translate:function(a){return"translate("+a[0]+"px, "+a[1]+"px) "},scale:function(a){return"scale("+a+") "}},p=function(a,c,d){var e=b.data(a,"isoTransform")||{},f={},g,h={},j;f[c]=d,b.extend(e,f);for(g in e)j=e[g],h[g]=o[g](j);var k=h.translate||"",l=h.scale||"",m=k+l;b.data(a,"isoTransform",e),a.style[i]=m};b.cssNumber.scale=!0,b.cssHooks.scale={set:function(a,b){p(a,"scale",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.scale?d.scale:1}},b.fx.step.scale=function(a){b.cssHooks.scale.set(a.elem,a.now+a.unit)},b.cssNumber.translate=!0,b.cssHooks.translate={set:function(a,b){p(a,"translate",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.translate?d.translate:[0,0]}}}var q,r;e.csstransitions&&(q={WebkitTransitionProperty:"webkitTransitionEnd",MozTransitionProperty:"transitionend",OTransitionProperty:"oTransitionEnd",transitionProperty:"transitionEnd"}[j],r=h("transitionDuration"));var s=b.event,t;s.special.smartresize={setup:function(){b(this).bind("resize",s.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",s.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize",t&&clearTimeout(t),t=setTimeout(function(){jQuery.event.handle.apply(c,d)},b==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Isotope=function(a,c,d){this.element=b(c),this._create(a),this._init(d)};var u=["overflow","position","width","height"],v=b(a);b.Isotope.settings={resizable:!0,layoutMode:"masonry",containerClass:"isotope",itemClass:"isotope-item",hiddenClass:"isotope-hidden",hiddenStyle:{opacity:0,scale:.001},visibleStyle:{opacity:1,scale:1},animationEngine:"best-available",animationOptions:{queue:!1,duration:800},sortBy:"original-order",sortAscending:!0,resizesContainer:!0,transformsEnabled:!b.browser.opera,itemPositionDataEnabled:!1},b.Isotope.prototype={_create:function(a){this.options=b.extend({},b.Isotope.settings,a),this.styleQueue=[],this.elemCount=0;var c=this.element[0].style;this.originalStyle={};for(var d=0,e=u.length;d<e;d++){var f=u[d];this.originalStyle[f]=c[f]||""}this.element.css({overflow:"hidden",position:"relative"}),this._updateAnimationEngine(),this._updateUsingTransforms();var g={"original-order":function(a,b){b.elemCount++;return b.elemCount},random:function(){return Math.random()}};this.options.getSortData=b.extend(this.options.getSortData,g),this.reloadItems(),this.offset={left:parseInt(this.element.css("padding-left"),10),top:parseInt(this.element.css("padding-top"),10)};var h=this;setTimeout(function(){h.element.addClass(h.options.containerClass)},0),this.options.resizable&&v.bind("smartresize.isotope",function(){h.resize()}),this.element.delegate("."+this.options.hiddenClass,"click",function(){return!1})},_getAtoms:function(a){var b=this.options.itemSelector,c=b?a.filter(b).add(a.find(b)):a,d={position:"absolute"};this.usingTransforms&&(d.left=0,d.top=0),c.css(d).addClass(this.options.itemClass),this.updateSortData(c,!0);return c},_init:function(a){this.$filteredAtoms=this._filter(this.$allAtoms),this._sort(),this.reLayout(a)},option:function(a){if(b.isPlainObject(a)){this.options=b.extend(!0,this.options,a);var c;for(var d in a)c="_update"+f(d),this[c]&&this[c]()}},_updateAnimationEngine:function(){var a=this.options.animationEngine.toLowerCase().replace(/[ _\-]/g,""),b;switch(a){case"css":case"none":b=!1;break;case"jquery":b=!0;break;default:b=!e.csstransitions}this.isUsingJQueryAnimation=b,this._updateUsingTransforms()},_updateTransformsEnabled:function(){this._updateUsingTransforms()},_updateUsingTransforms:function(){var a=this.usingTransforms=this.options.transformsEnabled&&e.csstransforms&&e.csstransitions&&!this.isUsingJQueryAnimation;a||(delete this.options.hiddenStyle.scale,delete this.options.visibleStyle.scale),this.getPositionStyles=a?this._translate:this._positionAbs},_filter:function(a){var b=this.options.filter===""?"*":this.options.filter;if(!b)return a;var c=this.options.hiddenClass,d="."+c,e=a.filter(d),f=e;if(b!=="*"){f=e.filter(b);var g=a.not(d).not(b).addClass(c);this.styleQueue.push({$el:g,style:this.options.hiddenStyle})}this.styleQueue.push({$el:f,style:this.options.visibleStyle}),f.removeClass(c);return a.filter(b)},updateSortData:function(a,c){var d=this,e=this.options.getSortData,f,g;a.each(function(){f=b(this),g={};for(var a in e)!c&&a==="original-order"?g[a]=b.data(this,"isotope-sort-data")[a]:g[a]=e[a](f,d);b.data(this,"isotope-sort-data",g)})},_sort:function(){var a=this.options.sortBy,b=this._getSorter,c=this.options.sortAscending?1:-1,d=function(d,e){var f=b(d,a),g=b(e,a);f===g&&a!=="original-order"&&(f=b(d,"original-order"),g=b(e,"original-order"));return(f>g?1:f<g?-1:0)*c};this.$filteredAtoms.sort(d)},_getSorter:function(a,c){return b.data(a,"isotope-sort-data")[c]},_translate:function(a,b){return{translate:[a,b]}},_positionAbs:function(a,b){return{left:a,top:b}},_pushPosition:function(a,b,c){b+=this.offset.left,c+=this.offset.top;var d=this.getPositionStyles(b,c);this.styleQueue.push({$el:a,style:d}),this.options.itemPositionDataEnabled&&a.data("isotope-item-position",{x:b,y:c})},layout:function(a,b){var c=this.options.layoutMode;this["_"+c+"Layout"](a);if(this.options.resizesContainer){var d=this["_"+c+"GetContainerSize"]();this.styleQueue.push({$el:this.element,style:d})}this._processStyleQueue(a,b),this.isLaidOut=!0},_processStyleQueue:function(a,c){var d=this.isLaidOut?this.isUsingJQueryAnimation?"animate":"css":"css",f=this.options.animationOptions,g=this.options.onLayout,h,i,j,k;i=function(a,b){b.$el[d](b.style,f)};if(this._isInserting&&this.isUsingJQueryAnimation)i=function(a,b){h=b.$el.hasClass("no-transition")?"css":d,b.$el[h](b.style,f)};else if(c||g||f.complete){var l=!1,m=[c,g,f.complete],n=this;j=!0,k=function(){if(!l){var b;for(var c=0,d=m.length;c<d;c++)b=m[c],typeof b=="function"&&b.call(n.element,a);l=!0}};if(this.isUsingJQueryAnimation&&d==="animate")f.complete=k,j=!1;else if(e.csstransitions){var o=0,p=this.styleQueue[0].$el,s;while(!p.length){s=this.styleQueue[o++];if(!s)return;p=s.$el}var t=parseFloat(getComputedStyle(p[0])[r]);t>0&&(i=function(a,b){b.$el[d](b.style,f).one(q,k)},j=!1)}}b.each(this.styleQueue,i),j&&k(),this.styleQueue=[]},resize:function(){this["_"+this.options.layoutMode+"ResizeChanged"]()&&this.reLayout()},reLayout:function(a){this["_"+this.options.layoutMode+"Reset"](),this.layout(this.$filteredAtoms,a)},addItems:function(a,b){var c=this._getAtoms(a);this.$allAtoms=this.$allAtoms.add(c),b&&b(c)},insert:function(a,b){this.element.append(a);var c=this;this.addItems(a,function(a){var d=c._filter(a);c._addHideAppended(d),c._sort(),c.reLayout(),c._revealAppended(d,b)})},appended:function(a,b){var c=this;this.addItems(a,function(a){c._addHideAppended(a),c.layout(a),c._revealAppended(a,b)})},_addHideAppended:function(a){this.$filteredAtoms=this.$filteredAtoms.add(a),a.addClass("no-transition"),this._isInserting=!0,this.styleQueue.push({$el:a,style:this.options.hiddenStyle})},_revealAppended:function(a,b){var c=this;setTimeout(function(){a.removeClass("no-transition"),c.styleQueue.push({$el:a,style:c.options.visibleStyle}),c._isInserting=!1,c._processStyleQueue(a,b)},10)},reloadItems:function(){this.$allAtoms=this._getAtoms(this.element.children())},remove:function(a,b){var c=this,d=function(){c.$allAtoms=c.$allAtoms.not(a),a.remove()};a.filter(":not(."+this.options.hiddenClass+")").length?(this.styleQueue.push({$el:a,style:this.options.hiddenStyle}),this.$filteredAtoms=this.$filteredAtoms.not(a),this._sort(),this.reLayout(d,b)):(d(),b&&b.call(this.element))},shuffle:function(a){this.updateSortData(this.$allAtoms),this.options.sortBy="random",this._sort(),this.reLayout(a)},destroy:function(){var a=this.usingTransforms,b=this.options;this.$allAtoms.removeClass(b.hiddenClass+" "+b.itemClass).each(function(){var b=this.style;b.position="",b.top="",b.left="",b.opacity="",a&&(b[i]="")});var c=this.element[0].style;for(var d=0,e=u.length;d<e;d++){var f=u[d];c[f]=this.originalStyle[f]}this.element.unbind(".isotope").undelegate("."+b.hiddenClass,"click").removeClass(b.containerClass).removeData("isotope"),v.unbind(".isotope")},_getSegments:function(a){var b=this.options.layoutMode,c=a?"rowHeight":"columnWidth",d=a?"height":"width",e=a?"rows":"cols",g=this.element[d](),h,i=this.options[b]&&this.options[b][c]||this.$filteredAtoms["outer"+f(d)](!0)||g;h=Math.floor(g/i),h=Math.max(h,1),this[b][e]=h,this[b][c]=i},_checkIfSegmentsChanged:function(a){var b=this.options.layoutMode,c=a?"rows":"cols",d=this[b][c];this._getSegments(a);return this[b][c]!==d},_masonryReset:function(){this.masonry={},this._getSegments();var a=this.masonry.cols;this.masonry.colYs=[];while(a--)this.masonry.colYs.push(0)},_masonryLayout:function(a){var c=this,d=c.masonry;a.each(function(){var a=b(this),e=Math.ceil(a.outerWidth(!0)/d.columnWidth);e=Math.min(e,d.cols);if(e===1)c._masonryPlaceBrick(a,d.colYs);else{var f=d.cols+1-e,g=[],h,i;for(i=0;i<f;i++)h=d.colYs.slice(i,i+e),g[i]=Math.max.apply(Math,h);c._masonryPlaceBrick(a,g)}})},_masonryPlaceBrick:function(a,b){var c=Math.min.apply(Math,b),d=0;for(var e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}var g=this.masonry.columnWidth*d,h=c;this._pushPosition(a,g,h);var i=c+a.outerHeight(!0),j=this.masonry.cols+1-f;for(e=0;e<j;e++)this.masonry.colYs[d+e]=i},_masonryGetContainerSize:function(){var a=Math.max.apply(Math,this.masonry.colYs);return{height:a}},_masonryResizeChanged:function(){return this._checkIfSegmentsChanged()},_fitRowsReset:function(){this.fitRows={x:0,y:0,height:0}},_fitRowsLayout:function(a){var c=this,d=this.element.width(),e=this.fitRows;a.each(function(){var a=b(this),f=a.outerWidth(!0),g=a.outerHeight(!0);e.x!==0&&f+e.x>d&&(e.x=0,e.y=e.height),c._pushPosition(a,e.x,e.y),e.height=Math.max(e.y+g,e.height),e.x+=f})},_fitRowsGetContainerSize:function(){return{height:this.fitRows.height}},_fitRowsResizeChanged:function(){return!0},_cellsByRowReset:function(){this.cellsByRow={index:0},this._getSegments(),this._getSegments(!0)},_cellsByRowLayout:function(a){var c=this,d=this.cellsByRow;a.each(function(){var a=b(this),e=d.index%d.cols,f=Math.floor(d.index/d.cols),g=Math.round((e+.5)*d.columnWidth-a.outerWidth(!0)/2),h=Math.round((f+.5)*d.rowHeight-a.outerHeight(!0)/2);c._pushPosition(a,g,h),d.index++})},_cellsByRowGetContainerSize:function(){return{height:Math.ceil(this.$filteredAtoms.length/this.cellsByRow.cols)*this.cellsByRow.rowHeight+this.offset.top}},_cellsByRowResizeChanged:function(){return this._checkIfSegmentsChanged()},_straightDownReset:function(){this.straightDown={y:0}},_straightDownLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,0,c.straightDown.y),c.straightDown.y+=d.outerHeight(!0)})},_straightDownGetContainerSize:function(){return{height:this.straightDown.y}},_straightDownResizeChanged:function(){return!0},_masonryHorizontalReset:function(){this.masonryHorizontal={},this._getSegments(!0);var a=this.masonryHorizontal.rows;this.masonryHorizontal.rowXs=[];while(a--)this.masonryHorizontal.rowXs.push(0)},_masonryHorizontalLayout:function(a){var c=this,d=c.masonryHorizontal;a.each(function(){var a=b(this),e=Math.ceil(a.outerHeight(!0)/d.rowHeight);e=Math.min(e,d.rows);if(e===1)c._masonryHorizontalPlaceBrick(a,d.rowXs);else{var f=d.rows+1-e,g=[],h,i;for(i=0;i<f;i++)h=d.rowXs.slice(i,i+e),g[i]=Math.max.apply(Math,h);c._masonryHorizontalPlaceBrick(a,g)}})},_masonryHorizontalPlaceBrick:function(a,b){var c=Math.min.apply(Math,b),d=0;for(var e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}var g=c,h=this.masonryHorizontal.rowHeight*d;this._pushPosition(a,g,h);var i=c+a.outerWidth(!0),j=this.masonryHorizontal.rows+1-f;for(e=0;e<j;e++)this.masonryHorizontal.rowXs[d+e]=i},_masonryHorizontalGetContainerSize:function(){var a=Math.max.apply(Math,this.masonryHorizontal.rowXs);return{width:a}},_masonryHorizontalResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_fitColumnsReset:function(){this.fitColumns={x:0,y:0,width:0}},_fitColumnsLayout:function(a){var c=this,d=this.element.height(),e=this.fitColumns;a.each(function(){var a=b(this),f=a.outerWidth(!0),g=a.outerHeight(!0);e.y!==0&&g+e.y>d&&(e.x=e.width,e.y=0),c._pushPosition(a,e.x,e.y),e.width=Math.max(e.x+f,e.width),e.y+=g})},_fitColumnsGetContainerSize:function(){return{width:this.fitColumns.width}},_fitColumnsResizeChanged:function(){return!0},_cellsByColumnReset:function(){this.cellsByColumn={index:0},this._getSegments(),this._getSegments(!0)},_cellsByColumnLayout:function(a){var c=this,d=this.cellsByColumn;a.each(function(){var a=b(this),e=Math.floor(d.index/d.rows),f=d.index%d.rows,g=Math.round((e+.5)*d.columnWidth-a.outerWidth(!0)/2),h=Math.round((f+.5)*d.rowHeight-a.outerHeight(!0)/2);c._pushPosition(a,g,h),d.index++})},_cellsByColumnGetContainerSize:function(){return{width:Math.ceil(this.$filteredAtoms.length/this.cellsByColumn.rows)*this.cellsByColumn.columnWidth}},_cellsByColumnResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_straightAcrossReset:function(){this.straightAcross={x:0}},_straightAcrossLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,c.straightAcross.x,0),c.straightAcross.x+=d.outerWidth(!0)})},_straightAcrossGetContainerSize:function(){return{width:this.straightAcross.x}},_straightAcrossResizeChanged:function(){return!0}},b.fn.imagesLoaded=function(a){function i(a){var c=a.target;c.src!==f&&b.inArray(c,g)===-1&&(g.push(c),--e<=0&&(setTimeout(h),d.unbind(".imagesLoaded",i)))}function h(){a.call(c,d)}var c=this,d=c.find("img").add(c.filter("img")),e=d.length,f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",g=[];e||h(),d.bind("load.imagesLoaded error.imagesLoaded",i).each(function(){var a=this.src;this.src=f,this.src=a});return c};var w=function(b){a.console&&a.console.error(b)};b.fn.isotope=function(a,c){if(typeof a=="string"){var d=Array.prototype.slice.call(arguments,1);this.each(function(){var c=b.data(this,"isotope");if(!c)w("cannot call methods on isotope prior to initialization; attempted to call method '"+a+"'");else{if(!b.isFunction(c[a])||a.charAt(0)==="_"){w("no such method '"+a+"' for isotope instance");return}c[a].apply(c,d)}})}else this.each(function(){var d=b.data(this,"isotope");d?(d.option(a),d._init(c)):b.data(this,"isotope",new b.Isotope(a,this,c))});return this}})(window,jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery.nivo.slider.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery.nivo.slider.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/jquery.nivo.slider.js	(revision 28599)
@@ -0,0 +1,673 @@
+/*
+ * jQuery Nivo Slider v3.0.1
+ * http://nivo.dev7studios.com
+ *
+ * Copyright 2012, Dev7studios
+ * Free to use and abuse under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+(function($) {
+    var NivoSlider = function(element, options){
+        // Defaults are below
+        var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
+
+        // Useful variables. Play carefully.
+        var vars = {
+            currentSlide: 0,
+            currentImage: '',
+            totalSlides: 0,
+            running: false,
+            paused: false,
+            stop: false,
+            controlNavEl: false
+        };
+
+        // Get this slider
+        var slider = $(element);
+        slider.data('nivo:vars', vars).addClass('nivoSlider');
+
+        // Find our slider children
+        var kids = slider.children();
+        kids.each(function() {
+            var child = $(this);
+            var link = '';
+            if(!child.is('img')){
+                if(child.is('a')){
+                    child.addClass('nivo-imageLink');
+                    link = child;
+                }
+                child = child.find('img:first');
+            }
+            // Get img width & height
+            var childWidth = (childWidth === 0) ? child.attr('width') : child.width(),
+                childHeight = (childHeight === 0) ? child.attr('height') : child.height();
+
+            if(link !== ''){
+                link.css('display','none');
+            }
+            child.css('display','none');
+            vars.totalSlides++;
+        });
+         
+        // If randomStart
+        if(settings.randomStart){
+            settings.startSlide = Math.floor(Math.random() * vars.totalSlides);
+        }
+        
+        // Set startSlide
+        if(settings.startSlide > 0){
+            if(settings.startSlide >= vars.totalSlides) { settings.startSlide = vars.totalSlides - 1; }
+            vars.currentSlide = settings.startSlide;
+        }
+        
+        // Get initial image
+        if($(kids[vars.currentSlide]).is('img')){
+            vars.currentImage = $(kids[vars.currentSlide]);
+        } else {
+            vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
+        }
+        
+        // Show initial link
+        if($(kids[vars.currentSlide]).is('a')){
+            $(kids[vars.currentSlide]).css('display','block');
+        }
+        
+        // Set first background
+        var sliderImg = $('<img class="nivo-main-image" src="#" />');
+        sliderImg.attr('src', vars.currentImage.attr('src')).show();
+        slider.append(sliderImg);
+
+        // Detect Window Resize
+        $(window).resize(function() {
+            slider.children('img').width(slider.width());
+            sliderImg.attr('src', vars.currentImage.attr('src'));
+            sliderImg.stop().height('auto');
+            $('.nivo-slice').remove();
+            $('.nivo-box').remove();
+        });
+
+        //Create caption
+        slider.append($('<div class="nivo-caption"></div>'));
+        
+        // Process caption function
+        var processCaption = function(settings){
+            var nivoCaption = $('.nivo-caption', slider);
+            if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){
+                var title = vars.currentImage.attr('title');
+                if(title.substr(0,1) == '#') title = $(title).html();   
+
+                if(nivoCaption.css('display') == 'block'){
+                    setTimeout(function(){
+                        nivoCaption.html(title);
+                    }, settings.animSpeed);
+                } else {
+                    nivoCaption.html(title);
+                    nivoCaption.stop().fadeIn(settings.animSpeed);
+                }
+            } else {
+                nivoCaption.stop().fadeOut(settings.animSpeed);
+            }
+        }
+        
+        //Process initial  caption
+        processCaption(settings);
+        
+        // In the words of Super Mario "let's a go!"
+        var timer = 0;
+        if(!settings.manualAdvance && kids.length > 1){
+            timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
+        }
+        
+        // Add Direction nav
+        if(settings.directionNav){
+            slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>');
+            
+            // Hide Direction nav
+            if(settings.directionNavHide){
+                $('.nivo-directionNav', slider).hide();
+                slider.hover(function(){
+                    $('.nivo-directionNav', slider).show();
+                }, function(){
+                    $('.nivo-directionNav', slider).hide();
+                });
+            }
+            
+            $('a.nivo-prevNav', slider).live('click', function(){
+                if(vars.running) { return false; }
+                clearInterval(timer);
+                timer = '';
+                vars.currentSlide -= 2;
+                nivoRun(slider, kids, settings, 'prev');
+            });
+            
+            $('a.nivo-nextNav', slider).live('click', function(){
+                if(vars.running) { return false; }
+                clearInterval(timer);
+                timer = '';
+                nivoRun(slider, kids, settings, 'next');
+            });
+        }
+        
+        // Add Control nav
+        if(settings.controlNav){
+            vars.controlNavEl = $('<div class="nivo-controlNav"></div>');
+            slider.after(vars.controlNavEl);
+            for(var i = 0; i < kids.length; i++){
+                if(settings.controlNavThumbs){
+                    vars.controlNavEl.addClass('nivo-thumbs-enabled');
+                    var child = kids.eq(i);
+                    if(!child.is('img')){
+                        child = child.find('img:first');
+                    }
+                    if(child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('data-thumb') +'" alt="" /></a>');
+                } else {
+                    vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>');
+                }
+            }
+
+            //Set initial active link
+            $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
+            
+            $('a', vars.controlNavEl).bind('click', function(){
+                if(vars.running) return false;
+                if($(this).hasClass('active')) return false;
+                clearInterval(timer);
+                timer = '';
+                sliderImg.attr('src', vars.currentImage.attr('src'));
+                vars.currentSlide = $(this).attr('rel') - 1;
+                nivoRun(slider, kids, settings, 'control');
+            });
+        }
+        
+        //For pauseOnHover setting
+        if(settings.pauseOnHover){
+            slider.hover(function(){
+                vars.paused = true;
+                clearInterval(timer);
+                timer = '';
+            }, function(){
+                vars.paused = false;
+                // Restart the timer
+                if(timer === '' && !settings.manualAdvance){
+                    timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
+                }
+            });
+        }
+        
+        // Event when Animation finishes
+        slider.bind('nivo:animFinished', function(){
+            sliderImg.attr('src', vars.currentImage.attr('src'));
+            vars.running = false; 
+            // Hide child links
+            $(kids).each(function(){
+                if($(this).is('a')){
+                   $(this).css('display','none');
+                }
+            });
+            // Show current link
+            if($(kids[vars.currentSlide]).is('a')){
+                $(kids[vars.currentSlide]).css('display','block');
+            }
+            // Restart the timer
+            if(timer === '' && !vars.paused && !settings.manualAdvance){
+                timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
+            }
+            // Trigger the afterChange callback
+            settings.afterChange.call(this);
+        }); 
+        
+        // Add slices for slice animations
+        var createSlices = function(slider, settings, vars) {
+        	if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
+            $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
+            var sliceHeight = ($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height();
+
+            for(var i = 0; i < settings.slices; i++){
+                var sliceWidth = Math.round(slider.width()/settings.slices);
+                
+                if(i === settings.slices-1){
+                    slider.append(
+                        $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({ 
+                            left:(sliceWidth*i)+'px', 
+                            width:(slider.width()-(sliceWidth*i))+'px',
+                            height:sliceHeight+'px', 
+                            opacity:'0',
+                            overflow:'hidden'
+                        })
+                    );
+                } else {
+                    slider.append(
+                        $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({ 
+                            left:(sliceWidth*i)+'px', 
+                            width:sliceWidth+'px',
+                            height:sliceHeight+'px',
+                            opacity:'0',
+                            overflow:'hidden'
+                        })
+                    );
+                }
+            }
+            
+            $('.nivo-slice', slider).height(sliceHeight);
+            sliderImg.stop().animate({
+                height: $(vars.currentImage).height()
+            }, settings.animSpeed);
+        };
+        
+        // Add boxes for box animations
+        var createBoxes = function(slider, settings, vars){
+        	if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
+            $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
+            var boxWidth = Math.round(slider.width()/settings.boxCols),
+                boxHeight = Math.round($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows);
+            
+                        
+            for(var rows = 0; rows < settings.boxRows; rows++){
+                for(var cols = 0; cols < settings.boxCols; cols++){
+                    if(cols === settings.boxCols-1){
+                        slider.append(
+                            $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({ 
+                                opacity:0,
+                                left:(boxWidth*cols)+'px', 
+                                top:(boxHeight*rows)+'px',
+                                width:(slider.width()-(boxWidth*cols))+'px'
+                                
+                            })
+                        );
+                        $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
+                    } else {
+                        slider.append(
+                            $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({ 
+                                opacity:0,
+                                left:(boxWidth*cols)+'px', 
+                                top:(boxHeight*rows)+'px',
+                                width:boxWidth+'px'
+                            })
+                        );
+                        $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
+                    }
+                }
+            }
+            
+            sliderImg.stop().animate({
+                height: $(vars.currentImage).height()
+            }, settings.animSpeed);
+        };
+
+        // Private run method
+        var nivoRun = function(slider, kids, settings, nudge){          
+            // Get our vars
+            var vars = slider.data('nivo:vars');
+            
+            // Trigger the lastSlide callback
+            if(vars && (vars.currentSlide === vars.totalSlides - 1)){ 
+                settings.lastSlide.call(this);
+            }
+            
+            // Stop
+            if((!vars || vars.stop) && !nudge) { return false; }
+            
+            // Trigger the beforeChange callback
+            settings.beforeChange.call(this);
+
+            // Set current background before change
+            if(!nudge){
+                sliderImg.attr('src', vars.currentImage.attr('src'));
+            } else {
+                if(nudge === 'prev'){
+                    sliderImg.attr('src', vars.currentImage.attr('src'));
+                }
+                if(nudge === 'next'){
+                    sliderImg.attr('src', vars.currentImage.attr('src'));
+                }
+            }
+            
+            vars.currentSlide++;
+            // Trigger the slideshowEnd callback
+            if(vars.currentSlide === vars.totalSlides){ 
+                vars.currentSlide = 0;
+                settings.slideshowEnd.call(this);
+            }
+            if(vars.currentSlide < 0) { vars.currentSlide = (vars.totalSlides - 1); }
+            // Set vars.currentImage
+            if($(kids[vars.currentSlide]).is('img')){
+                vars.currentImage = $(kids[vars.currentSlide]);
+            } else {
+                vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
+            }
+            
+            // Set active links
+            if(settings.controlNav){
+                $('a', vars.controlNavEl).removeClass('active');
+                $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
+            }
+            
+            // Process caption
+            processCaption(settings);            
+            
+            // Remove any slices from last transition
+            $('.nivo-slice', slider).remove();
+            
+            // Remove any boxes from last transition
+            $('.nivo-box', slider).remove();
+            
+            var currentEffect = settings.effect,
+                anims = '';
+                
+            // Generate random effect
+            if(settings.effect === 'random'){
+                anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade',
+                'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');
+                currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))];
+                if(currentEffect === undefined) { currentEffect = 'fade'; }
+            }
+            
+            // Run random effect from specified set (eg: effect:'fold,fade')
+            if(settings.effect.indexOf(',') !== -1){
+                anims = settings.effect.split(',');
+                currentEffect = anims[Math.floor(Math.random()*(anims.length))];
+                if(currentEffect === undefined) { currentEffect = 'fade'; }
+            }
+            
+            // Custom transition as defined by "data-transition" attribute
+            if(vars.currentImage.attr('data-transition')){
+                currentEffect = vars.currentImage.attr('data-transition');
+            }
+        
+            // Run effects
+            vars.running = true;
+            var timeBuff = 0,
+                i = 0,
+                slices = '',
+                firstSlice = '',
+                totalBoxes = '',
+                boxes = '';
+            
+            if(currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft'){
+                createSlices(slider, settings, vars);
+                timeBuff = 0;
+                i = 0;
+                slices = $('.nivo-slice', slider);
+                if(currentEffect === 'sliceDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
+                
+                slices.each(function(){
+                    var slice = $(this);
+                    slice.css({ 'top': '0px' });
+                    if(i === settings.slices-1){
+                        setTimeout(function(){
+                            slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
+                        }, (100 + timeBuff));
+                    } else {
+                        setTimeout(function(){
+                            slice.animate({opacity:'1.0' }, settings.animSpeed);
+                        }, (100 + timeBuff));
+                    }
+                    timeBuff += 50;
+                    i++;
+                });
+            } else if(currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft'){
+                createSlices(slider, settings, vars);
+                timeBuff = 0;
+                i = 0;
+                slices = $('.nivo-slice', slider);
+                if(currentEffect === 'sliceUpLeft') { slices = $('.nivo-slice', slider)._reverse(); }
+                
+                slices.each(function(){
+                    var slice = $(this);
+                    slice.css({ 'bottom': '0px' });
+                    if(i === settings.slices-1){
+                        setTimeout(function(){
+                            slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
+                        }, (100 + timeBuff));
+                    } else {
+                        setTimeout(function(){
+                            slice.animate({opacity:'1.0' }, settings.animSpeed);
+                        }, (100 + timeBuff));
+                    }
+                    timeBuff += 50;
+                    i++;
+                });
+            } else if(currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft'){
+                createSlices(slider, settings, vars);
+                timeBuff = 0;
+                i = 0;
+                var v = 0;
+                slices = $('.nivo-slice', slider);
+                if(currentEffect === 'sliceUpDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
+                
+                slices.each(function(){
+                    var slice = $(this);
+                    if(i === 0){
+                        slice.css('top','0px');
+                        i++;
+                    } else {
+                        slice.css('bottom','0px');
+                        i = 0;
+                    }
+                    
+                    if(v === settings.slices-1){
+                        setTimeout(function(){
+                            slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
+                        }, (100 + timeBuff));
+                    } else {
+                        setTimeout(function(){
+                            slice.animate({opacity:'1.0' }, settings.animSpeed);
+                        }, (100 + timeBuff));
+                    }
+                    timeBuff += 50;
+                    v++;
+                });
+            } else if(currentEffect === 'fold'){
+                createSlices(slider, settings, vars);
+                timeBuff = 0;
+                i = 0;
+                
+                $('.nivo-slice', slider).each(function(){
+                    var slice = $(this);
+                    var origWidth = slice.width();
+                    slice.css({ top:'0px', width:'0px' });
+                    if(i === settings.slices-1){
+                        setTimeout(function(){
+                            slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
+                        }, (100 + timeBuff));
+                    } else {
+                        setTimeout(function(){
+                            slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed);
+                        }, (100 + timeBuff));
+                    }
+                    timeBuff += 50;
+                    i++;
+                });
+            } else if(currentEffect === 'fade'){
+                createSlices(slider, settings, vars);
+                
+                firstSlice = $('.nivo-slice:first', slider);
+                firstSlice.css({
+                    'width': slider.width() + 'px'
+                });
+    
+                firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
+            } else if(currentEffect === 'slideInRight'){
+                createSlices(slider, settings, vars);
+                
+                firstSlice = $('.nivo-slice:first', slider);
+                firstSlice.css({
+                    'width': '0px',
+                    'opacity': '1'
+                });
+
+                firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
+            } else if(currentEffect === 'slideInLeft'){
+                createSlices(slider, settings, vars);
+                
+                firstSlice = $('.nivo-slice:first', slider);
+                firstSlice.css({
+                    'width': '0px',
+                    'opacity': '1',
+                    'left': '',
+                    'right': '0px'
+                });
+
+                firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ 
+                    // Reset positioning
+                    firstSlice.css({
+                        'left': '0px',
+                        'right': ''
+                    });
+                    slider.trigger('nivo:animFinished'); 
+                });
+            } else if(currentEffect === 'boxRandom'){
+                createBoxes(slider, settings, vars);
+                
+                totalBoxes = settings.boxCols * settings.boxRows;
+                i = 0;
+                timeBuff = 0;
+
+                boxes = shuffle($('.nivo-box', slider));
+                boxes.each(function(){
+                    var box = $(this);
+                    if(i === totalBoxes-1){
+                        setTimeout(function(){
+                            box.animate({ opacity:'1' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
+                        }, (100 + timeBuff));
+                    } else {
+                        setTimeout(function(){
+                            box.animate({ opacity:'1' }, settings.animSpeed);
+                        }, (100 + timeBuff));
+                    }
+                    timeBuff += 20;
+                    i++;
+                });
+            } else if(currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
+                createBoxes(slider, settings, vars);
+                
+                totalBoxes = settings.boxCols * settings.boxRows;
+                i = 0;
+                timeBuff = 0;
+                
+                // Split boxes into 2D array
+                var rowIndex = 0;
+                var colIndex = 0;
+                var box2Darr = [];
+                box2Darr[rowIndex] = [];
+                boxes = $('.nivo-box', slider);
+                if(currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse'){
+                    boxes = $('.nivo-box', slider)._reverse();
+                }
+                boxes.each(function(){
+                    box2Darr[rowIndex][colIndex] = $(this);
+                    colIndex++;
+                    if(colIndex === settings.boxCols){
+                        rowIndex++;
+                        colIndex = 0;
+                        box2Darr[rowIndex] = [];
+                    }
+                });
+                
+                // Run animation
+                for(var cols = 0; cols < (settings.boxCols * 2); cols++){
+                    var prevCol = cols;
+                    for(var rows = 0; rows < settings.boxRows; rows++){
+                        if(prevCol >= 0 && prevCol < settings.boxCols){
+                            /* Due to some weird JS bug with loop vars 
+                            being used in setTimeout, this is wrapped
+                            with an anonymous function call */
+                            (function(row, col, time, i, totalBoxes) {
+                                var box = $(box2Darr[row][col]);
+                                var w = box.width();
+                                var h = box.height();
+                                if(currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
+                                    box.width(0).height(0);
+                                }
+                                if(i === totalBoxes-1){
+                                    setTimeout(function(){
+                                        box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); });
+                                    }, (100 + time));
+                                } else {
+                                    setTimeout(function(){
+                                        box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3);
+                                    }, (100 + time));
+                                }
+                            })(rows, prevCol, timeBuff, i, totalBoxes);
+                            i++;
+                        }
+                        prevCol--;
+                    }
+                    timeBuff += 100;
+                }
+            }           
+        };
+        
+        // Shuffle an array
+        var shuffle = function(arr){
+            for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x);
+            return arr;
+        };
+        
+        // For debugging
+        var trace = function(msg){
+            if(this.console && typeof console.log !== 'undefined') { console.log(msg); }
+        };
+        
+        // Start / Stop
+        this.stop = function(){
+            if(!$(element).data('nivo:vars').stop){
+                $(element).data('nivo:vars').stop = true;
+                trace('Stop Slider');
+            }
+        };
+        
+        this.start = function(){
+            if($(element).data('nivo:vars').stop){
+                $(element).data('nivo:vars').stop = false;
+                trace('Start Slider');
+            }
+        };
+        
+        // Trigger the afterLoad callback
+        settings.afterLoad.call(this);
+        
+        return this;
+    };
+        
+    $.fn.nivoSlider = function(options) {
+        return this.each(function(key, value){
+            var element = $(this);
+            // Return early if this element already has a plugin instance
+            if (element.data('nivoslider')) { return element.data('nivoslider'); }
+            // Pass options to plugin constructor
+            var nivoslider = new NivoSlider(this, options);
+            // Store plugin object in this element's data
+            element.data('nivoslider', nivoslider);
+        });
+    };
+    
+    //Default settings
+    $.fn.nivoSlider.defaults = {
+        effect: 'random',
+        slices: 15,
+        boxCols: 8,
+        boxRows: 4,
+        animSpeed: 500,
+        pauseTime: 3000,
+        startSlide: 0,
+        directionNav: true,
+        directionNavHide: true,
+        controlNav: true,
+        controlNavThumbs: false,
+        pauseOnHover: true,
+        manualAdvance: false,
+        prevText: 'Prev',
+        nextText: 'Next',
+        randomStart: false,
+        beforeChange: function(){},
+        afterChange: function(){},
+        slideshowEnd: function(){},
+        lastSlide: function(){},
+        afterLoad: function(){}
+    };
+
+    $.fn._reverse = [].reverse;
+    
+})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/modernizr-2.5.3.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/modernizr-2.5.3.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/modernizr-2.5.3.min.js	(revision 28599)
@@ -0,0 +1,4 @@
+/* Modernizr 2.5.3 (Custom Build) | MIT & BSD
+ * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
+ */
+;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function L(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(k),g.offsetWidth,e=k.value!=l,g.removeChild(k)):e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.5.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["&#173;","<style>",a,"</style>"].join(""),k.id=h,m.innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e});var K=function(c,d){var f=c.join(""),g=d.length;y(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",n.join("touch-enabled),("),h,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",n.join("transform-3d),("),h,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',l,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);s.flexbox=function(){return J("flexOrder")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){try{var d=b.createElement("canvas"),e;e=!(!a.WebGLRenderingContext||!d.getContext("experimental-webgl")&&!d.getContext("webgl")),d=c}catch(f){e=!1}return e},s.touch=function(){return e.touch},s.geolocation=function(){return!!navigator.geolocation},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){for(var b=-1,c=p.length;++b<c;)if(a[p[b]+"WebSocket"])return!0;return"WebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&(a=e.csstransforms3d),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){return e.fontface},s.generatedcontent=function(){return e.generatedcontent},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var M in s)C(s,M)&&(x=M.toLowerCase(),e[x]=s[M](),v.push((e[x]?"":"no-")+x));return e.input||L(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},D(""),i=k=null,function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/moveform.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/moveform.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/moveform.js	(revision 28599)
@@ -0,0 +1,7 @@
+/*
+ * Moves the comments form beneath the reponding post
+ * No need to include in the wordpress version
+ *
+*/
+
+addComment={moveForm:function(d,f,i,c){var m=this,a,h=m.I(d),b=m.I(i),l=m.I("cancel-comment-reply-link"),j=m.I("comment_parent"),k=m.I("comment_post_ID");if(!h||!b||!l||!j){return}m.respondId=i;c=c||false;if(!m.I("wp-temp-form-div")){a=document.createElement("div");a.id="wp-temp-form-div";a.style.display="none";b.parentNode.insertBefore(a,b)}h.parentNode.insertBefore(b,h.nextSibling);if(k&&c){k.value=c}j.value=f;l.style.display="";l.onclick=function(){var n=addComment,e=n.I("wp-temp-form-div"),o=n.I(n.respondId);if(!e||!o){return}n.I("comment_parent").value="0";e.parentNode.insertBefore(o,e);e.parentNode.removeChild(e);this.style.display="none";this.onclick=null;return false};try{m.I("comment").focus()}catch(g){}return false},I:function(a){return document.getElementById(a)}};
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/GPL-LICENSE.txt
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/GPL-LICENSE.txt	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/GPL-LICENSE.txt	(revision 28599)
@@ -0,0 +1,278 @@
+        GNU GENERAL PUBLIC LICENSE
+           Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+          Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+        GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+          NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/MIT-LICENSE.txt
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/MIT-LICENSE.txt	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/MIT-LICENSE.txt	(revision 28599)
@@ -0,0 +1,20 @@
+Copyright (c) 2010 Vasil Dinkov, http://vadikom.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/README.txt
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/README.txt	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/README.txt	(revision 28599)
@@ -0,0 +1,2 @@
+Home page with introduction:
+http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/demo.html
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/demo.html	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/demo.html	(revision 28599)
@@ -0,0 +1,659 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<title>Poshy Tip jQuery Plugin Demo Page</title>
+	<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
+
+
+	<!-- Tooltip classes -->
+	<link rel="stylesheet" href="../src/tip-yellow/tip-yellow.css" type="text/css" />
+	<link rel="stylesheet" href="../src/tip-violet/tip-violet.css" type="text/css" />
+	<link rel="stylesheet" href="../src/tip-darkgray/tip-darkgray.css" type="text/css" />
+	<link rel="stylesheet" href="../src/tip-skyblue/tip-skyblue.css" type="text/css" />
+	<link rel="stylesheet" href="../src/tip-yellowsimple/tip-yellowsimple.css" type="text/css" />
+	<link rel="stylesheet" href="../src/tip-twitter/tip-twitter.css" type="text/css" />
+	<link rel="stylesheet" href="../src/tip-green/tip-green.css" type="text/css" />
+
+	<!-- jQuery and the Poshy Tip plugin files -->
+	<script type="text/javascript" src="includes/jquery-1.4.2.min.js"></script>
+	<script type="text/javascript" src="../src/jquery.poshytip.js"></script>
+
+	<!-- Setup examples on this page -->
+	<script type="text/javascript">
+		//<![CDATA[
+		$(function(){
+
+			$('#demo-basic').poshytip();
+			$('#demo-tip-yellow').poshytip();
+			$('#demo-tip-violet').poshytip({
+				className: 'tip-violet',
+				bgImageFrameSize: 9
+			});
+			$('#demo-tip-darkgray').poshytip({
+				className: 'tip-darkgray',
+				bgImageFrameSize: 11,
+				offsetX: -25
+			});
+			$('#demo-tip-skyblue').poshytip({
+				className: 'tip-skyblue',
+				bgImageFrameSize: 9,
+				offsetX: 0,
+				offsetY: 20
+			});
+			$('#demo-tip-yellowsimple').poshytip({
+				className: 'tip-yellowsimple',
+				showTimeout: 1,
+				alignTo: 'target',
+				alignX: 'center',
+				offsetY: 5,
+				allowTipHover: false
+			});
+			$('#demo-tip-twitter').poshytip({
+				className: 'tip-twitter',
+				showTimeout: 1,
+				alignTo: 'target',
+				alignX: 'center',
+				offsetY: 5,
+				allowTipHover: false,
+				fade: false,
+				slide: false
+			});
+			$('#demo-tip-green').poshytip({
+				className: 'tip-green',
+				offsetX: -7,
+				offsetY: 16,
+				allowTipHover: false
+			});
+			$('#demo-form-name').poshytip({
+				className: 'tip-yellowsimple',
+				showOn: 'focus',
+				alignTo: 'target',
+				alignX: 'right',
+				alignY: 'center',
+				offsetX: 5
+			});
+			$('#demo-form-email').poshytip({
+				className: 'tip-yellowsimple',
+				showOn: 'focus',
+				alignTo: 'target',
+				alignX: 'left',
+				alignY: 'center',
+				offsetX: 5
+			});
+			$('#demo-form-site').poshytip({
+				className: 'tip-yellowsimple',
+				showOn: 'focus',
+				alignTo: 'target',
+				alignX: 'inner-left',
+				offsetX: 0,
+				offsetY: 5
+			});
+			$('#demo-form-subject').poshytip({
+				className: 'tip-yellowsimple',
+				showOn: 'focus',
+				alignTo: 'target',
+				alignX: 'center',
+				alignY: 'bottom',
+				offsetX: 0,
+				offsetY: 5
+			});
+			$('#demo-async-timeout').poshytip({
+				content: function(updateCallback) {
+					window.setTimeout(function() {
+						updateCallback('Tooltip content updated!');
+					}, 1000);
+					return 'Loading...';
+				}
+			});
+
+			var flickrFeedsCache = {};
+			$('#demo-async-flickr > a').poshytip({
+				className: 'tip-darkgray',
+				bgImageFrameSize: 11,
+				alignY: 'bottom',
+				content: function(updateCallback) {
+					var rel = $(this).attr('rel');
+					if (flickrFeedsCache[rel] && flickrFeedsCache[rel].container)
+						return flickrFeedsCache[rel].container;
+					if (!flickrFeedsCache[rel]) {
+						flickrFeedsCache[rel] = { container: null };
+						var tagsComma = rel.substring(4).replace('-', ',');
+						$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=' + tagsComma + '&tagmode=all&format=json&jsoncallback=?',
+							function(data) {
+								var container = $('<div/>').addClass('flickr-thumbs');
+								$.each(data.items, function(i, item) {
+									$('<a/>')
+										.attr('href', item.link)
+										.append($('<img/>').attr('src', item.media.m))
+										.appendTo(container)
+										.data('tip', '<strong>' + (item.title || '(no title)') + '</strong><br />by: ' + item.author.match(/\((.*)\)/)[1]);
+									if (i == 4)
+										return false;
+								});
+								// add tips for the images inside the main tip
+								container.find('a').poshytip({
+									content: function(){return $(this).data('tip');},
+									className: 'tip-yellowsimple',
+									showTimeout: 100,
+									alignTo: 'target',
+									alignX: 'center',
+									alignY: 'bottom',
+									offsetY: 5,
+									allowTipHover: false,
+									hideAniDuration: 0
+								});
+								// call the updateCallback function to update the content in the main tooltip
+								// and also store the content in the cache
+								updateCallback(flickrFeedsCache[rel].container = container);
+							}
+						);
+					}
+					return 'Loading images...';
+				}
+			});
+			$('#demo-follow-cursor').poshytip({
+				followCursor: true,
+				slide: false
+			});
+			$('#demo-manual-trigger').poshytip({
+				content: 'Hey, there! This is a tooltip.',
+				showOn: 'none',
+				alignTo: 'target',
+				alignX: 'inner-left',
+				offsetX: 0,
+				offsetY: 5
+			});
+			$('#button-show').click(function() { $('#demo-manual-trigger').poshytip('show'); });
+			$('#button-hide').click(function() { $('#demo-manual-trigger').poshytip('hide'); });
+			$('#button-update').click(function() { $('#demo-manual-trigger').poshytip('update', 'I am a new content :)'); });
+			$('#button-disable').click(function() { $('#demo-manual-trigger').poshytip('disable'); });
+			$('#button-enable').click(function() { $('#demo-manual-trigger').poshytip('enable'); });
+			$('#button-destroy').click(function() { $('#demo-manual-trigger').poshytip('destroy'); });
+			$('#demo-live-events > a').poshytip({
+				liveEvents: true
+			});
+			$('#button-live-events').click(function() {
+				$('#demo-live-events').append(', <a title="Hey, there! This is a tooltip." href="#">Hover for a tooltip</a>');
+			});
+
+		});
+		//]]>
+	</script>
+	<style type="text/css">
+		.flickr-thumbs {
+			overflow:hidden;
+		}
+		.flickr-thumbs a {
+			float:left;
+			display:block;
+			margin:0 3px;
+			border:1px solid #333;
+		}
+		.flickr-thumbs a:hover {
+			border-color:#eee;
+		}
+		.flickr-thumbs img {
+			display:block;
+			width:60px;
+			height:60px;
+		}
+	</style>
+
+
+	<!-- Neglect these files - they are used just to make the demo page prettier -->
+	<link rel="stylesheet" href="includes/demos.css" type="text/css" />
+	<script type="text/javascript" src="includes/sh_main.min.js"></script>
+	<script type="text/javascript" src="includes/demos.js"></script>
+</head>
+
+<body>
+
+	<div id="holder">
+
+		<div id="nav">
+			<h2>Demo Page Navigation</h2>
+			<ul>
+				<li class="first"><a href="#examples">Usage Examples</a>
+					<ul>
+						<li><a href="#styles">Styles (Classes)</a></li>
+						<li><a href="#form-tooltips">Form Tooltips (with varying positioning)</a></li>
+						<li><a href="#async-content">Asynchronous Loading of the Content</a>
+							<ul>
+								<li><a href="#async-simple">Simple Example</a></li>
+								<li><a href="#async-flickr-feeds">Loading Flickr Feeds</a></li>
+							</ul>
+						</li>
+						<li><a href="#follow-cursor">Following the Mouse Cursor</a></li>
+						<li><a href="#manual-trigger">API Example - Triggering the Tooltip Manually</a></li>
+						<li><a href="#live-events">Using Live Events</a></li>
+					</ul>
+				</li>
+				<li><a href="#options">Options</a></li>
+				<li><a href="#methods">Methods</a></li>
+				<li><a href="#notes">Notes</a></li>
+				<li><a href="#license">License</a></li>
+				<li><a href="#download">Download</a></li>
+				<li><a href="#support">Support</a></li>
+				<li class="last"><a href="#donate">Donate</a></li>
+			</ul>
+			<h2>Next?</h2>
+			<ul>
+				<li class="first"><a href="http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/">&laquo; Back to the Poshy Tip Page</a></li>
+				<li class="last"><a href="http://vadikom.com/">&laquo; Back to Vadikom.com</a></li>
+			</ul>
+		</div>
+
+		<div id="content">
+			<h1>Poshy Tip jQuery Plugin <span>Demo Page</span></h1>
+
+			<h2 id="examples">Usage Examples</h2>
+
+			<p>The default browser tooltip that displays the value of the <code>title</code> attribute is replaced with a "poshier" version:</p>
+
+			<!-- #demo-basic -->
+			<p><a id="demo-basic" title="Hey, there! This is a tooltip." href="#">Hover for a tooltip</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-basic').poshytip();</pre>
+			</div>
+
+			<h3 id="styles">Styles (Classes)</h3>
+
+			<p>Using different tooltip classes is easy. Here are some examples that are included in the download package (in the "src" folder).</p>
+
+			<!-- #demo-tip-yellow -->
+			<p><a id="demo-tip-yellow" title="Hey, there! This is a tooltip." href="#">.tip-yellow</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-yellow').poshytip();</pre>
+			</div>
+
+			<!-- #demo-tip-violet -->
+			<p><a id="demo-tip-violet" title="Hey, there! This is a tooltip." href="#">.tip-violet</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-violet').poshytip({
+	className: 'tip-violet',
+	bgImageFrameSize: 9
+});</pre>
+			</div>
+
+			<!-- #demo-tip-darkgray -->
+			<p><a id="demo-tip-darkgray" title="Hey, there! This is a tooltip." href="#">.tip-darkgray</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-darkgray').poshytip({
+	className: 'tip-darkgray',
+	bgImageFrameSize: 11,
+	offsetX: -25
+});</pre>
+			</div>
+
+			<!-- #demo-tip-skyblue -->
+			<p><a id="demo-tip-skyblue" title="Hey, there! This is a tooltip." href="#">.tip-skyblue</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-skyblue').poshytip({
+	className: 'tip-skyblue',
+	bgImageFrameSize: 9,
+	offsetX: 0,
+	offsetY: 20
+});</pre>
+			</div>
+
+			<!-- #demo-tip-yellowsquare -->
+			<p><a id="demo-tip-yellowsimple" title="Hey, there! This is a tooltip." href="#">.tip-yellowsimple</a> (no background-image used for the tooltip body)</p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-yellowsimple').poshytip({
+	className: 'tip-yellowsimple',
+	showTimeout: 1,
+	alignTo: 'target',
+	alignX: 'center',
+	offsetY: 5,
+	allowTipHover: false
+});</pre>
+			</div>
+
+			<!-- #demo-tip-twitter -->
+			<p><a id="demo-tip-twitter" title="Follow vadikom" href="#">.tip-twitter</a> (ala Twitter)</p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-twitter').poshytip({
+	className: 'tip-twitter',
+	showTimeout: 1,
+	alignTo: 'target',
+	alignX: 'center',
+	offsetY: 5,
+	allowTipHover: false,
+	fade: false,
+	slide: false
+});</pre>
+			</div>
+
+			<!-- #demo-tip-green -->
+			<p><a id="demo-tip-green" title="Hey, there! This is a tooltip." href="#">.tip-green</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-tip-green').poshytip({
+	className: 'tip-green',
+	offsetX: -7,
+	offsetY: 16,
+	allowTipHover: false
+});</pre>
+			</div>
+
+			<h3 id="form-tooltips">Form Tooltips (with varying positioning)</h3>
+
+			<p>Adding form input field tooltips is simple. You just have to make sure they are triggered on focus/blur (i.e. <code>showOn: 'focus'</code>) and positioned relatively to the target element (i.e. <code>alignTo: 'target'</code>). The script also updates the position of such tooltips if the window is resized (e.g. show some of the tips below and resize your browser window for a demo).</p>
+
+			<!-- #demo-form-name -->
+			<p>
+				<label for="demo-form-name">Name:</label><br />
+				<input id="demo-form-name" type="text" size="30" title="Enter your name" />
+			</p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-form-name').poshytip({
+	className: 'tip-yellowsimple',
+	showOn: 'focus',
+	alignTo: 'target',
+	alignX: 'right',
+	alignY: 'center',
+	offsetX: 5
+});</pre>
+			</div>
+
+			<!-- #demo-form-email -->
+			<p>
+				<label for="demo-form-email">Email:</label><br />
+				<input id="demo-form-email" type="text" size="30" title="Enter a valid email" />
+			</p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-form-email').poshytip({
+	className: 'tip-yellowsimple',
+	showOn: 'focus',
+	alignTo: 'target',
+	alignX: 'left',
+	alignY: 'center',
+	offsetX: 5
+});</pre>
+			</div>
+
+			<!-- #demo-form-site -->
+			<p>
+				<label for="demo-form-site">Site:</label><br />
+				<input id="demo-form-site" type="text" size="30" title="Enter your website URL" />
+			</p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-form-site').poshytip({
+	className: 'tip-yellowsimple',
+	showOn: 'focus',
+	alignTo: 'target',
+	alignX: 'inner-left',
+	offsetX: 0,
+	offsetY: 5
+});</pre>
+			</div>
+
+			<!-- #demo-form-subject -->
+			<p>
+				<label for="demo-form-subject">Subject:</label><br />
+				<input id="demo-form-subject" type="text" size="30" title="Enter a subject" />
+			</p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-form-subject').poshytip({
+	className: 'tip-yellowsimple',
+	showOn: 'focus',
+	alignTo: 'target',
+	alignX: 'center',
+	alignY: 'bottom',
+	offsetX: 0,
+	offsetY: 5
+});</pre>
+			</div>
+
+			<h3 id="async-content">Asynchronous Loading of the Content</h3>
+
+			<p>Poshy Tip supports using a function for returning the tooltip content and the script also passes an update callback function as an argument to this function. By using this callback, you can easily update asynchronously the content of the tooltip after it has been displayed. The script also recalculates and updates the position of the tooltip when its content is updated.</p>
+
+			<h4 id="async-simple">Simple Example</h4>
+
+			<!-- #demo-async-timeout -->
+			<p><a id="demo-async-timeout" href="#">Update content after 1 second</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-async-timeout').poshytip({
+	content: function(updateCallback) {
+		window.setTimeout(function() {
+			updateCallback('Tooltip content updated!');
+		}, 1000);
+		return 'Loading...';
+	}
+});</pre>
+			</div>
+
+			<h4 id="async-flickr-feeds">Loading Flickr Feeds</h4>
+
+			<p>A more complicated example of loading some Flickr images by tags:</p>
+
+			<!-- #demo-async-flickr -->
+			<p id="demo-async-flickr"><a rel="tag-flowers-closeup" href="#">flowers, closeup</a>, <a rel="tag-sunset" href="#">sunset</a>, <a rel="tag-architecture" href="#">architecture</a>, <a rel="tag-Plovdiv-old-town" href="#">Plovdiv, old, town</a>, <a rel="tag-Nesebar" href="#">Nesebar</a>, <a rel="tag-depeche" href="#">depeche</a></p>
+
+
+			<div class="code-block">
+			<pre class="sh_javascript">var flickrFeedsCache = {};
+
+$('#demo-async-flickr &gt; a').poshytip({
+	className: 'tip-darkgray',
+	bgImageFrameSize: 11,
+	alignY: 'bottom',
+	content: function(updateCallback) {
+		var rel = $(this).attr('rel');
+		if (flickrFeedsCache[rel] &amp;&amp; flickrFeedsCache[rel].container)
+			return flickrFeedsCache[rel].container;
+		if (!flickrFeedsCache[rel]) {
+			flickrFeedsCache[rel] = { container: null };
+			var tagsComma = rel.substring(4).replace('-', ',');
+			$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=' + tagsComma + '&amp;tagmode=all&amp;format=json&amp;jsoncallback=?',
+				function(data) {
+					var container = $('&lt;div/&gt;').addClass('flickr-thumbs');
+					$.each(data.items, function(i, item) {
+						$('&lt;a/&gt;')
+							.attr('href', item.link)
+							.append($('&lt;img/&gt;').attr('src', item.media.m))
+							.appendTo(container)
+							.data('tip', '&lt;strong&gt;' + (item.title || '(no title)') + '&lt;/strong&gt;&lt;br /&gt;by: ' + item.author.match(/\((.*)\)/)[1]);
+						if (i == 4)
+							return false;
+					});
+					// add tips for the images inside the main tip
+					container.find('a').poshytip({
+						content: function(){return $(this).data('tip');},
+						className: 'tip-yellowsimple',
+						showTimeout: 100,
+						alignTo: 'target',
+						alignX: 'center',
+						alignY: 'bottom',
+						offsetY: 5,
+						allowTipHover: false,
+						hideAniDuration: 0
+					});
+					// store the content in the cache
+					// and call updateCallback() to update the content in the main tooltip
+					updateCallback(flickrFeedsCache[rel].container = container);
+				}
+			);
+		}
+		return 'Loading images...';
+	}
+});</pre>
+			</div>
+
+			<h3 id="follow-cursor">Following the Mouse Cursor</h3>
+
+			<p>If using the <code>followCursor: true</code> option, it's better to make sure the the slide animation effect is disabled (i.e. <code>slide: false</code>) so that it doesn't conflict with the code that moves the tooltip with the cursor.</p>
+
+			<!-- #demo-follow-cursor -->
+			<p><a id="demo-follow-cursor" title="Hey, there! This is a tooltip." href="#">Hover for a tooltip that follows the cursor</a></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-follow-cursor').poshytip({
+	followCursor: true,
+	slide: false
+});</pre>
+			</div>
+
+			<h3 id="manual-trigger">API Example - Triggering the Tooltip Manually</h3>
+
+			<p>If you like, you can add a tooltip to some element(s) and configure it to not be triggered automatically on hover or focus/blur by using the <code>showOn: 'none'</code> option. You can then control the tooltip manually via the available methods.</p>
+
+			<!-- #demo-manual-trigger -->
+			<p><a id="demo-manual-trigger" href="#">This link has a tooltip that is not triggered automatically</a></p>
+			<p><button id="button-show">Show</button> <button id="button-hide">Hide</button> <button id="button-update">Update Content</button> <button id="button-disable">Disable</button> <button id="button-enable">Enable</button> <button id="button-destroy">Destroy</button></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-manual-trigger').poshytip({
+	content: 'Hey, there! This is a tooltip.',
+	showOn: 'none',
+	alignTo: 'target',
+	alignX: 'inner-left',
+	offsetX: 0,
+	offsetY: 5
+});
+$('#button-show').click(function() { $('#demo-manual-trigger').poshytip('show'); });
+$('#button-hide').click(function() { $('#demo-manual-trigger').poshytip('hide'); });
+$('#button-update').click(function() { $('#demo-manual-trigger').poshytip('update', 'I am a new content :)'); });
+$('#button-disable').click(function() { $('#demo-manual-trigger').poshytip('disable'); });
+$('#button-enable').click(function() { $('#demo-manual-trigger').poshytip('enable'); });
+$('#button-destroy').click(function() { $('#demo-manual-trigger').poshytip('destroy'); });</pre>
+			</div>
+
+			<h3 id="live-events">Using Live Events</h3>
+
+			<p>You can set the <code>liveEvents: true</code> option to use live events. Note that the API methods (except 'destroy') won't work reliably in such case. They will only work for the elements for which the tooltip has been initialized (i.e. shown at least once). Live events are supported in jQuery 1.4.2+.</p>
+
+			<!-- #demo-live-events -->
+			<p id="demo-live-events"><a title="Hey, there! This is a tooltip." href="#">Hover for a tooltip</a></p>
+			<p><button id="button-live-events">Add Another Link</button></p>
+			<div class="code-block">
+			<pre class="sh_javascript">$('#demo-live-events &gt; a').poshytip({
+	liveEvents: true
+});
+$('#button-live-events').click(function() {
+	$('#demo-live-events').append(', &lt;a title="Hey, there! This is a tooltip." href="#"&gt;Hover for a tooltip&lt;/a&gt;');
+});</pre>
+			</div>
+
+			<h2 id="options">Options</h2>
+
+			<dl class="options">
+				<dt><strong>content</strong> <i>String, DOM element, Function, jQuery</i></dt>
+				<dd><div class="possible-values">Possible Values: <span>'[title]', 'string', element, function(updateCallback){...}, jQuery</span></div>Content to display.</dd>
+
+				<dt><strong>className</strong> <i>String</i></dt>
+				<dd>Class for the tips.</dd>
+
+				<dt><strong>bgImageFrameSize</strong> <i>Number</i></dt>
+				<dd>Size in pixels for the background-image (if set in CSS) frame around the inner content of the tip.</dd>
+
+				<dt><strong>showTimeout</strong> <i>Number</i></dt>
+				<dd>Timeout before showing the tip (in milliseconds 1000 == 1 second).</dd>
+
+				<dt><strong>hideTimeout</strong> <i>Number</i></dt>
+				<dd>Timeout before hiding the tip.</dd>
+
+				<dt><strong>timeOnScreen</strong> <i>Number</i></dt>
+				<dd>How long the tip will be displayed before automatically hiding.</dd>
+
+				<dt><strong>showOn</strong> <i>String</i></dt>
+				<dd><div class="possible-values">Possible Values: <span>'hover', 'focus', 'none'</span></div>Handler for showing the tip. Use <code>'none'</code> if you would like to trigger the tooltip just manually (i.e. by calling the <code>'show'</code> and <code>'hide'</code> methods).</dd>
+
+				<dt><strong>liveEvents</strong> <i>Boolean</i></dt>
+				<dd>Use live events.<br /><br />Note that the API methods (except 'destroy') won't work reliably when live events are used. They will only work for the elements for which the tooltip has been initialized (i.e. shown at least once). Live events are supported in jQuery 1.4.2+.</dd>
+
+				<dt><strong>alignTo</strong> <i>String</i></dt>
+				<dd><div class="possible-values">Possible Values: <span>'cursor', 'target'</span></div>Align/position the tip relative to</dd>
+
+				<dt><strong>alignX</strong> <i>String</i></dt>
+				<dd><div class="possible-values">Possible Values: <span>'right', 'center', 'left', 'inner-left', 'inner-right'</span></div>Horizontal alignment for the tip relative to the mouse cursor or the target element - values 'inner-*' matter if <code>alignTo:'target'</code></dd>
+
+				<dt><strong>alignY</strong> <i>String</i></dt>
+				<dd><div class="possible-values">Possible Values: <span>'bottom', 'center', 'top', 'inner-bottom', 'inner-top'</span></div>Vertical alignment for the tip relative to the mouse cursor or the target element - values 'inner-*' matter if <code>alignTo:'target'</code></dd>
+
+				<dt><strong>offsetX</strong> <i>Number</i></dt>
+				<dd>Offset X pixels from the default position - doesn't matter if <code>alignX:'center'</code></dd>
+
+				<dt><strong>offsetY</strong> <i>Number</i></dt>
+				<dd>Offset Y pixels from the default position - doesn't matter if <code>alignY:'center'</code></dd>
+
+				<dt><strong>allowTipHover</strong> <i>Boolean</i></dt>
+				<dd>Allow hovering the tip without hiding it onmouseout of the target - matters only if <code>showOn:'hover'</code></dd>
+
+				<dt><strong>followCursor</strong> <i>Boolean</i></dt>
+				<dd>If the tip should follow the cursor - matters only if <code>showOn:'hover'</code> and <code>alignTo:'cursor'</code></dd>
+
+				<dt><strong>fade</strong> <i>Boolean</i></dt>
+				<dd>Use fade animation.</dd>
+
+				<dt><strong>slide</strong> <i>Boolean</i></dt>
+				<dd>Use slide animation.</dd>
+
+				<dt><strong>slideOffset</strong> <i>Number</i></dt>
+				<dd>Slide animation offset.</dd>
+
+				<dt><strong>showAniDuration</strong> <i>Number</i></dt>
+				<dd>Show animation duration.</dd>
+
+				<dt><strong>hideAniDuration</strong> <i>Number</i></dt>
+				<dd>Hide animation duration.</dd>
+			</dl>
+
+			<h2 id="methods">Methods</h2>
+
+			<dl class="options">
+				<dt><strong>.poshytip('show')</strong></dt>
+				<dd>Manually show the tooltip. Make sure the <code>alignTo</code> option is set to <code>'target'</code> in order the tooltip to be properly positioned when you trigger it.</dd>
+
+				<dt><strong>.poshytip('hide')</strong></dt>
+				<dd>Manually hide the tooltip.</dd>
+
+				<dt><strong>.poshytip('update', content, [ dontOverwriteOption ] )</strong></dt>
+				<dd>Update the tooltip content at any time.<div class="signature"><strong>content</strong> '[title]', 'string', element, function(updateCallback){...}, jQuery<br /><strong>dontOverwriteOption</strong> (optional) A boolean flag - if set to <code>true</code> the content will be updated just temporary while the tooltip is active. The next time it is shown again, the default content will be used.</div>Examples:<br /> - Update content permanently (works even when the tooltip is not active):<div class="signature">.poshytip('update', 'New permanent content')</div> - Update content temporary while the tooltip is active:<div class="signature">.poshytip('update', 'Temporary content', true)</div></dd>
+
+				<dt><strong>.poshytip('disable')</strong></dt>
+				<dd>Disable the tooltip.</dd>
+
+				<dt><strong>.poshytip('enable')</strong></dt>
+				<dd>Enable the tooltip.</dd>
+
+				<dt><strong>.poshytip('destroy')</strong></dt>
+				<dd>Destroy completely the tooltip functionality.</dd>
+			</dl>
+
+			<h2 id="notes">Notes</h2>
+
+			<ul>
+				<li>Requires jQuery 1.4+</li>
+				<li>Works in IE6+, FF 2+, Opera 9+, Safari 3+, Chrome</li>
+				<li>In IE6 min/max-width are supported (only px values) for the tooltip container DIV so you can use them in your CSS without worrying for IE6 (if you still care about it)</li>
+				<li>When a background-image is set for the tooltip container DIV, the script will neglect the background-color/padding/border declarations set for it and will use the background image to create a scalable frame around the tooltip inner DIV (for an explanation how this works, please take a look at the <a href="http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/">Poshy Tip Page</a>)</li>
+				<li>In IE6 PNG background images are not supported (only GIF). If a PNG is set as a background-image for the tooltip container, in IE6 the script will fallback and use the background-color/padding/border declarations instead.</li>
+			</ul>
+
+			<h2 id="license">License</h2>
+
+			<p>Like jQuery, Poshy Tip is dual licensed under the <a href="http://github.com/vadikom/poshytip/raw/master/MIT-LICENSE.txt">MIT</a> and <a href="http://github.com/vadikom/poshytip/raw/master/GPL-LICENSE.txt">GPL</a> licenses.</p>
+
+			<h2 id="download">Download</h2>
+
+			<p>Download link: <a href="http://vadikom.com/files/?file=poshytip/poshytip-1.1.zip">http://vadikom.com/files/?file=poshytip/poshytip-1.1.zip</a></p>
+
+			<h3>Git</h3>
+
+			<p>The Poshy Tip source code is also available at GitHub:</p>
+			<div class="code-block">
+			<pre class="sh_html">git clone git://github.com/vadikom/poshytip.git</pre>
+			</div>
+
+			<h2 id="support">Support</h2>
+
+			<p>Post your questions/suggestions in the <a href="http://www.smartmenus.org/forum/">support forums</a>.</p>
+
+			<h2 id="donate">Donate</h2>
+
+			<p>If you appreciate this script, you can support me by <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=paypal@vadikom.com&amp;no_shipping=1&amp;currency_code=USD&amp;item_name=Poshy+Tip+jQuery+Plugin+Development" rel="nofollow">donating a small amount</a> through PayPal or just by <a href="http://www.addtoany.com/share_save?linkname=Poshy%20Tip%20-%20Tooltip%20Plugin%20for%20jQuery%20-%20Vadikom&amp;linkurl=http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/" rel="nofollow">spreading the word</a> about it. Your support is highly appreciated!</p>
+		</div>
+
+	</div>
+
+</body>
+</html>
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/demos.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/demos.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/demos.css	(revision 28599)
@@ -0,0 +1,422 @@
+	/* ==================== | DEFAULT FONTS | ==================== */
+
+body {
+	font:12px 'lucida sans unicode','lucida sans','lucida grande',helvetica,arial,sans-serif;
+}
+table, th, td, input, select, textarea {
+	font:1em 'lucida sans unicode','lucida sans','lucida grande',helvetica,arial,sans-serif;
+}
+
+
+
+	/* ==================== | DEFAULT STYLES | ==================== */
+
+html, body, h1, h2, h3, h4, p, ul, ol, li, form, input, select, dl, dt, dd, fieldset, blockquote {
+	margin:0;
+	padding:0;
+}
+a img {
+	border:none;
+}
+a.sup {
+	text-decoration:none;
+}
+fieldset {
+	display:block;
+	border:0;
+}
+abbr {
+	border-bottom:1px dotted;
+}
+
+
+
+	/*  ==================== | LINKS | ==================== */
+
+a {
+	text-decoration:none;
+	color:#860404;
+}
+
+
+
+	/* ==================== | LAYOUT | ==================== */
+
+body {
+	background:#F4F4F4 url(sheet_bg.jpg) fixed no-repeat;
+	color:#434343;
+	text-align:center;
+}
+#holder {
+	width:800px;
+	margin:20px auto;
+	border:solid #ddd;
+	border-width:5px 0;
+	border-radius:5px;
+	-moz-border-radius:5px;
+	-webkit-border-radius:5px;
+	padding:30px 0;
+	background:#fff;
+	text-align:left;
+}
+#content {
+	margin-left:30px;
+	width:520px;
+}
+#nav {
+	float:right;
+	margin:50px 20px 0 0;
+	width:200px;
+	display:inline;
+}
+
+
+
+	/* ==================== | CONTENT COLUMN | ==================== */
+
+#content {
+	font-size:14px;
+}
+#content h1, #content h2, #content h3, #content h4 {
+	margin:1.5em 0 0.5em 0;
+	font-weight:normal;
+	color:#860404;
+}
+#content h1 {
+	position:relative;
+	height:50px;
+	margin:0 -230px 0 -10px;
+	border-bottom:1px solid #efefef;
+	font-family:georgia,'times new roman',times,serif;
+	font-size:30px;
+}
+#content h1 span {
+	position:absolute;
+	left:0;
+	margin:-15px 0 0 7px;
+	font-size:15px;
+	font-style:italic;
+	color:#888;
+}
+#content h2 {
+	font-family:arial,helvetica,sans-serif;
+	font-size:18px;
+}
+#content h3 {
+	font-size:16px;
+}
+#content h4 {
+	font-size:14px;
+}
+#content p, #content ul, #content ol, #content dd, #content table {
+	margin-bottom:1em;
+	line-height:22px;
+}
+#content ul ul {
+	margin:2px 0 0 0;
+	list-style-type:circle;
+}
+#content li {
+	margin:0 0 2px 28px;
+}
+#content ul li {
+	margin:0 0 2px 14px;
+	padding:0 0 0 14px;
+	list-style-type:none;
+	background:url(bullet.png) no-repeat 0 0.21em;
+}
+#content dd {
+	margin-left:0;
+}
+#content dt {
+	font-weight:normal;
+	margin-bottom:2px;
+}
+#content code {
+	background:#ffffe1;
+	font-family:monospace;
+}
+#content a {
+	border-bottom:2px solid #cfcdf0;
+	background-color:#f1ffe2;
+	color:#434343;
+	text-decoration:none;
+}
+#content a:visited {
+	background-color:#fbf0ff;
+}
+#content a:hover, #content a:focus, #content a:active {
+	border-color:#908dc0;
+	background-color:#e9ffd3;
+}
+a.image {
+	display:block;
+	margin:0;
+	width:150px;
+	border:2px solid #cae8b7 !important;
+	padding:1px !important;
+	background:transparent !important;
+}
+a.image:hover, a.image:focus, a.image:active {
+	border-color:#9ec883 !important;
+}
+a.image img {
+	border:none !important;
+}
+dl.options {
+	font-size:13px;
+}
+dl.options dt {
+	position:relative;
+	border-top:1px solid #efefef;
+	padding:2px 0;
+	background:#f8f8f8;
+}
+dl.options dt i {
+	position:absolute;
+	right:0;
+	font-size:12px;
+	color:#888888;
+}
+dl.options div.possible-values {
+	margin-bottom:4px;
+	font-size:11px;
+	color:#888888;
+}
+dl.options div.possible-values span {
+	margin-bottom:4px;
+	color:#434343;
+}
+dl.options div.signature {
+	padding-left:20px;
+}
+
+
+
+	/* ==================== | NAVIGATION | ==================== */
+
+#nav h2 {
+	margin:1.93em 0 0.5em 0;
+	padding-left:6px;
+	font-family:georgia,'times new roman',times,serif;
+	font-size:15px;
+	font-weight:normal;
+	font-style:italic;
+	color:#888;
+}
+#nav ul, #nav li {
+	display:block;
+	list-style:none;
+}
+#nav ul, #nav p {
+	margin-bottom:1em;
+}
+#nav ul ul {
+	margin-bottom:0;
+}
+#nav li {
+	border-top:1px solid #e9d08e;
+}
+#nav li.first {
+	border:0;
+}
+#nav a {
+	display:block;
+	padding:5px 12px;
+	background:#f2d995;
+	zoom:1;
+}
+#nav a:hover, #nav a:focus, #nav a:active, #nav a.current {
+	color:#151515;
+	background:#fbebc1;
+}
+#nav li.first a {
+	border-radius:5px 5px 0 0;
+	-moz-border-radius:5px 5px 0 0;
+	-webkit-border-radius:5px 5px 0 0;
+}
+#nav li.last a {
+	border-radius:0 0 5px 5px;
+	-moz-border-radius:0 0 5px 5px;
+	-webkit-border-radius:0 0 5px 5px;
+}
+#nav ul ul a {
+	padding-left:24px;
+	background:#f9e09b;
+	border-radius:0 !important;
+	-moz-border-radius:0 !important;
+	-webkit-border-radius:0 !important;
+}
+#nav ul ul ul a {
+	padding-left:36px;
+	background:#ffe5a0;
+	border-radius:0 !important;
+	-moz-border-radius:0 !important;
+	-webkit-border-radius:0 !important;
+}
+
+
+
+	/* ==================== | SHJS (syntax highlighter) | ==================== */
+
+div.code-block {
+	position:relative;
+	margin:0 0 1em 0;
+	border-left:4px solid #d9d9d9;
+	padding:3px 6px;
+	background:#f8f8f8;
+	zoom:1;
+}
+div.code-block textarea {
+	position:absolute;
+	margin:-2px 0 0 -2px;
+	overflow:auto;
+	border:1px solid;
+	border-color:#777 #ccc #f8f8f8 #ccc;
+	padding:1px;
+	background:#fff;
+	color:#000;
+	font-family:consolas,'lucida console',monaco,'courier new',courier,monospace,mono,serif;
+	font-size:13px;
+	font-weight:normal;
+	font-style:normal;
+	z-index:1000;
+}
+#content div.code-block a.view-plain, #content div.code-block a.view-plain:visited {
+	display:none;
+	position:absolute;
+	bottom:100%;
+	right:0;
+	border-bottom:1px dashed #d5d5d5;
+	padding:3px 4px;
+	text-align:right;
+	background:#fff;
+	color:#888888;
+	font:0.8em arial,helvetica,sans-serif;
+}
+#content div.code-block a.view-plain:hover {
+	background:#aaa;
+	color:#fff;
+}
+div.code-block pre {
+	display:block;
+	width:100%;
+	margin:0;
+	overflow:auto;
+	cursor:text;
+	color: #434343;
+	font-family:consolas,'lucida console',monaco,'courier new',courier,monospace,mono,serif;
+	font-size:13px;
+	font-weight:normal;
+	font-style:normal;
+}
+pre.sh_sourceCode .sh_keyword {
+	color: #aa0d91;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_type {
+	color: #008000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_string {
+	color: #c80000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_regexp {
+	color: #008000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_specialchar {
+	color: #ff00ff;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_comment {
+	color: #007400;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_number {
+	color: #3200ff;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_preproc {
+	color: #008200;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_function {
+	color: #000000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_url {
+	color: #008000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_date {
+	color: #000000;
+	font-weight: bold;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_time {
+	color: #000000;
+	font-weight: bold;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_file {
+	color: #000000;
+	font-weight: bold;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_ip {
+	color: #008000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_name {
+	color: #008000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_variable {
+	color: #000000;
+	font-weight: bold;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_oldfile {
+	color: #ff00ff;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_newfile {
+	color: #008000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_difflines {
+	color: #000000;
+	font-weight: bold;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_selector {
+	color: #000000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_property {
+	color: #c80000;
+	font-weight: normal;
+	font-style: normal;
+}
+pre.sh_sourceCode .sh_value {
+	color: #3200ff;
+	font-weight: normal;
+	font-style: normal;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/demos.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/demos.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/demos.js	(revision 28599)
@@ -0,0 +1,66 @@
+$(function(){
+
+	// =================================
+	// init SHJS (syntax highlither)
+	// =================================
+	window.sh_highlightDocument();
+	$('pre.sh_sourceCode').parent()
+		.hover(function(){
+			var $div = $(this);
+			if ($div.data('hideTimeout')) {
+				clearTimeout($div.data('hideTimeout'));
+				$div.data('hideTimeout', 0);
+			}
+			if (!$div.data('active')) {
+				$div.data('showTimeout',
+					setTimeout(function(){
+						var $pre = $div.children().eq(-1),
+							scrollBarFix = 30,
+							width = $pre[0].scrollWidth > $pre.outerWidth() ?
+								Math.min($pre[0].scrollWidth + scrollBarFix, $(window).width() - scrollBarFix - $div.offset().left) :
+								$pre.outerWidth(),
+							height = document.defaultView && document.defaultView.getComputedStyle && parseFloat(document.defaultView.getComputedStyle($div[0], null).height) || $div.height();
+						$div.wrap('<div class="code-placeholder" style="position:relative;height:' + (height + parseInt($div.css('padding-top')) + parseInt($div.css('padding-bottom'))) + 'px;margin:' + $div.css('margin-top') + ' ' + $div.css('margin-right') + ' ' + $div.css('margin-bottom') + ' ' + $div.css('margin-left') + ';"></div>')
+						.css({position: 'absolute', width: width, height: height}).data('active', true)
+							.find('> a').fadeIn(500);
+					}, 500)
+				);
+			}
+		}, function(){
+			var $div = $(this);
+			if ($div.data('showTimeout')) {
+				clearTimeout($div.data('showTimeout'));
+				$div.data('showTimeout', 0);
+			}
+			if ($div.data('active') && !$div.data('plainView')) {
+				$div.data('hideTimeout',
+					setTimeout(function(){
+						$div.unwrap().css({position: 'relative', width: '', height: ''}).data('active', false)
+							.find('> a').hide();
+					}, 500)
+				);
+			}
+		})
+		.prepend('<a/>').find('> a').addClass('view-plain').attr('href', '#').text('View plain code')
+		.click(function(){
+			var $link = $(this),
+				$div = $link.parent(),
+				$pre = $link.next(),
+				$window = $(window),
+				scrollPos = [$window.scrollLeft(), $window.scrollTop()],
+				value = $pre.text(),
+				height = $pre.outerHeight() + (window.opera && window.opera.version && window.opera.version() < 10.5 ? $pre[0].scrollHeight / ((value.replace(/\r\n/g, '\n').match(/\n/g) || '').length + 1) : 0);
+			$('<textarea wrap="off"/>').css({width: $div.width(), height: height, '-moz-box-shadow': '0 5px 15px #888', '-webkit-box-shadow': '0 5px 15px #888', 'box-shadow': '0 5px 15px #888'})
+				.val(value).attr('readonly', 'readonly').insertBefore($pre).blur(function(){
+					$(this).next()/* pre */.css('visibility', 'inherit').prev()/* textarea */.remove();
+					$div.data('plainView', false).mouseleave();
+				});
+			$link.hide().next().next()/* pre */.css('visibility', 'hidden').prev()/* textarea */.focus();
+			// some browsers (like IE < 8) may mess up the scroll position when the textarea is focused
+			if (window.scrollTo)
+				window.scrollTo(scrollPos[0], scrollPos[1]);
+			$div.data('plainView', true);
+			return false;
+		});
+
+});
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/jquery-1.4.2.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/jquery-1.4.2.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/jquery-1.4.2.min.js	(revision 28599)
@@ -0,0 +1,155 @@
+/*!
+ * jQuery JavaScript Library v1.4.2
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Sat Feb 13 22:33:48 2010 -0500
+ */
+(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
+e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
+j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
+"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
+true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
+Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
+(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
+a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
+"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
+function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
+c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
+L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
+"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
+d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
+a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
+!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
+true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
+parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
+false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
+s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
+applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
+else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
+a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
+w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
+cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
+i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
+" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
+this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
+e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
+c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
+a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
+function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
+k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
+C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
+null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
+e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
+f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
+if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
+"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
+a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
+isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
+{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
+if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
+e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
+"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
+d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
+!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
+toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
+u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
+function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
+if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
+t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
+g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
+for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
+1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
+relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
+l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
+h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
+CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
+g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
+text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
+setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
+h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
+m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
+"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
+h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
+!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
+h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
+q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
+if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
+(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
+function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
+gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
+c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
+{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
+"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
+d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
+a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
+1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
+a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
+""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
+this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
+u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
+1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
+return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
+""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
+c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
+c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
+function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
+Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
+"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
+a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
+a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
+"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
+serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
+function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
+global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
+e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
+"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
+false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
+false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
+c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
+d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
+g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
+1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
+"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
+if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
+this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
+"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
+animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
+j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
+this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
+"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
+c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
+this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
+this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
+e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
+c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
+function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
+this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
+k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
+f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
+a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
+c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
+d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
+f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
+"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
+e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/sh_main.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/sh_main.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/demo/includes/sh_main.min.js	(revision 28599)
@@ -0,0 +1,20 @@
+/* Copyright (C) 2007, 2008 gnombat@users.sourceforge.net */
+/* License: http://shjs.sourceforge.net/doc/gplv3.html */
+
+if(!this.sh_languages){this.sh_languages={}}var sh_requests={};function sh_isEmailAddress(a){if(/^mailto:/.test(a)){return false}return a.indexOf("@")!==-1}function sh_setHref(b,c,d){var a=d.substring(b[c-2].pos,b[c-1].pos);if(a.length>=2&&a.charAt(0)==="<"&&a.charAt(a.length-1)===">"){a=a.substr(1,a.length-2)}if(sh_isEmailAddress(a)){a="mailto:"+a}b[c-2].node.href=a}function sh_konquerorExec(b){var a=[""];a.index=b.length;a.input=b;return a}function sh_highlightString(B,o){if(/Konqueror/.test(navigator.userAgent)){if(!o.konquered){for(var F=0;F<o.length;F++){for(var H=0;H<o[F].length;H++){var G=o[F][H][0];if(G.source==="$"){G.exec=sh_konquerorExec}}}o.konquered=true}}var N=document.createElement("a");var q=document.createElement("span");var A=[];var j=0;var n=[];var C=0;var k=null;var x=function(i,a){var p=i.length;if(p===0){return}if(!a){var Q=n.length;if(Q!==0){var r=n[Q-1];if(!r[3]){a=r[1]}}}if(k!==a){if(k){A[j++]={pos:C};if(k==="sh_url"){sh_setHref(A,j,B)}}if(a){var P;if(a==="sh_url"){P=N.cloneNode(false)}else{P=q.cloneNode(false)}P.className=a;A[j++]={node:P,pos:C}}}C+=p;k=a};var t=/\r\n|\r|\n/g;t.lastIndex=0;var d=B.length;while(C<d){var v=C;var l;var w;var h=t.exec(B);if(h===null){l=d;w=d}else{l=h.index;w=t.lastIndex}var g=B.substring(v,l);var M=[];for(;;){var I=C-v;var D;var y=n.length;if(y===0){D=0}else{D=n[y-1][2]}var O=o[D];var z=O.length;var m=M[D];if(!m){m=M[D]=[]}var E=null;var u=-1;for(var K=0;K<z;K++){var f;if(K<m.length&&(m[K]===null||I<=m[K].index)){f=m[K]}else{var c=O[K][0];c.lastIndex=I;f=c.exec(g);m[K]=f}if(f!==null&&(E===null||f.index<E.index)){E=f;u=K;if(f.index===I){break}}}if(E===null){x(g.substring(I),null);break}else{if(E.index>I){x(g.substring(I,E.index),null)}var e=O[u];var J=e[1];var b;if(J instanceof Array){for(var L=0;L<J.length;L++){b=E[L+1];x(b,J[L])}}else{b=E[0];x(b,J)}switch(e[2]){case -1:break;case -2:n.pop();break;case -3:n.length=0;break;default:n.push(e);break}}}if(k){A[j++]={pos:C};if(k==="sh_url"){sh_setHref(A,j,B)}k=null}C=w}return A}function sh_getClasses(d){var a=[];var b=d.className;if(b&&b.length>0){var e=b.split(" ");for(var c=0;c<e.length;c++){if(e[c].length>0){a.push(e[c])}}}return a}function sh_addClass(c,a){var d=sh_getClasses(c);for(var b=0;b<d.length;b++){if(a.toLowerCase()===d[b].toLowerCase()){return}}d.push(a);c.className=d.join(" ")}function sh_extractTagsFromNodeList(c,a){var f=c.length;for(var d=0;d<f;d++){var e=c.item(d);switch(e.nodeType){case 1:if(e.nodeName.toLowerCase()==="br"){var b;if(/MSIE/.test(navigator.userAgent)){b="\r"}else{b="\n"}a.text.push(b);a.pos++}else{a.tags.push({node:e.cloneNode(false),pos:a.pos});sh_extractTagsFromNodeList(e.childNodes,a);a.tags.push({pos:a.pos})}break;case 3:case 4:a.text.push(e.data);a.pos+=e.length;break}}}function sh_extractTags(c,b){var a={};a.text=[];a.tags=b;a.pos=0;sh_extractTagsFromNodeList(c.childNodes,a);return a.text.join("")}function sh_mergeTags(d,f){var a=d.length;if(a===0){return f}var c=f.length;if(c===0){return d}var i=[];var e=0;var b=0;while(e<a&&b<c){var h=d[e];var g=f[b];if(h.pos<=g.pos){i.push(h);e++}else{i.push(g);if(f[b+1].pos<=h.pos){b++;i.push(f[b]);b++}else{i.push({pos:h.pos});f[b]={node:g.node.cloneNode(false),pos:h.pos}}}}while(e<a){i.push(d[e]);e++}while(b<c){i.push(f[b]);b++}return i}function sh_insertTags(k,h){var g=document;var l=document.createDocumentFragment();var e=0;var d=k.length;var b=0;var j=h.length;var c=l;while(b<j||e<d){var i;var a;if(e<d){i=k[e];a=i.pos}else{a=j}if(a<=b){if(i.node){var f=i.node;c.appendChild(f);c=f}else{c=c.parentNode}e++}else{c.appendChild(g.createTextNode(h.substring(b,a)));b=a}}return l}function sh_highlightElement(d,g){sh_addClass(d,"sh_sourceCode");var c=[];var e=sh_extractTags(d,c);var f=sh_highlightString(e,g);var b=sh_mergeTags(c,f);var a=sh_insertTags(b,e);while(d.hasChildNodes()){d.removeChild(d.firstChild)}d.appendChild(a)}function sh_getXMLHttpRequest(){if(window.ActiveXObject){return new ActiveXObject("Msxml2.XMLHTTP")}else{if(window.XMLHttpRequest){return new XMLHttpRequest()}}throw"No XMLHttpRequest implementation available"}function sh_load(language,element,prefix,suffix){if(language in sh_requests){sh_requests[language].push(element);return}sh_requests[language]=[element];var request=sh_getXMLHttpRequest();var url=prefix+"sh_"+language+suffix;request.open("GET",url,true);request.onreadystatechange=function(){if(request.readyState===4){try{if(!request.status||request.status===200){eval(request.responseText);var elements=sh_requests[language];for(var i=0;i<elements.length;i++){sh_highlightElement(elements[i],sh_languages[language])}}else{throw"HTTP error: status "+request.status}}finally{request=null}}};request.send(null)}function sh_highlightDocument(g,k){var b=document.getElementsByTagName("pre");for(var e=0;e<b.length;e++){var f=b.item(e);var a=sh_getClasses(f);for(var c=0;c<a.length;c++){var h=a[c].toLowerCase();if(h==="sh_sourcecode"){continue}if(h.substr(0,3)==="sh_"){var d=h.substring(3);if(d in sh_languages){sh_highlightElement(f,sh_languages[d])}else{if(typeof(g)==="string"&&typeof(k)==="string"){sh_load(d,f,g,k)}else{throw'Found <pre> element with class="'+h+'", but no such language exists'}}break}}}};
+
+
+// JavaScript syntax module
+if(!this.sh_languages){this.sh_languages={}}sh_languages.javascript=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b(?:abstract|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|final|finally|for|function|goto|if|implements|in|instanceof|interface|native|new|null|private|protected|public|return|static|super|switch|synchronized|throw|throws|this|transient|true|try|typeof|var|volatile|while|with)\b/g,"sh_keyword",-1],[/(\+\+|--|\)|\])(\s*)(\/=?(?![*\/]))/g,["sh_symbol","sh_normal","sh_symbol"],-1],[/(0x[A-Fa-f0-9]+|(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?)(\s*)(\/(?![*\/]))/g,["sh_number","sh_normal","sh_symbol"],-1],[/([A-Za-z$_][A-Za-z0-9$_]*\s*)(\/=?(?![*\/]))/g,["sh_normal","sh_symbol"],-1],[/\/(?:\\.|[^*\\\/])(?:\\.|[^\\\/])*\/[gim]*/g,"sh_regexp",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/\b(?:Math|Infinity|NaN|undefined|arguments)\b/g,"sh_predef_var",-1],[/\b(?:Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt)\b/g,"sh_predef_func",-1],[/\b(?:applicationCache|closed|Components|content|controllers|crypto|defaultStatus|dialogArguments|directories|document|frameElement|frames|fullScreen|globalStorage|history|innerHeight|innerWidth|length|location|locationbar|menubar|name|navigator|opener|outerHeight|outerWidth|pageXOffset|pageYOffset|parent|personalbar|pkcs11|returnValue|screen|availTop|availLeft|availHeight|availWidth|colorDepth|height|left|pixelDepth|top|width|screenX|screenY|scrollbars|scrollMaxX|scrollMaxY|scrollX|scrollY|self|sessionStorage|sidebar|status|statusbar|toolbar|top|window)\b/g,"sh_predef_var",-1],[/\b(?:alert|addEventListener|atob|back|blur|btoa|captureEvents|clearInterval|clearTimeout|close|confirm|dump|escape|find|focus|forward|getAttention|getComputedStyle|getSelection|home|moveBy|moveTo|open|openDialog|postMessage|print|prompt|releaseEvents|removeEventListener|resizeBy|resizeTo|scroll|scrollBy|scrollByLines|scrollByPages|scrollTo|setInterval|setTimeout|showModalDialog|sizeToContent|stop|unescape|updateCommands|onabort|onbeforeunload|onblur|onchange|onclick|onclose|oncontextmenu|ondragdrop|onerror|onfocus|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onpaint|onreset|onresize|onscroll|onselect|onsubmit|onunload)\b/g,"sh_predef_func",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/"/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]],[[/'/g,"sh_string",-2],[/\\./g,"sh_specialchar",-1]]];
+
+
+// CSS syntax module
+if(!this.sh_languages){this.sh_languages={}}sh_languages.css=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(?:\.|#)[A-Za-z0-9_]+/g,"sh_selector",-1],[/\{/g,"sh_cbracket",10,1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",5]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/$/g,null,-2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[/<!DOCTYPE/g,"sh_preproc",4,1],[/<!--/g,"sh_comment",5],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\}/g,"sh_cbracket",-2],[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/[A-Za-z0-9_-]+[ \t]*:/g,"sh_property",-1],[/[.%A-Za-z0-9_-]+/g,"sh_value",-1],[/#(?:[A-Za-z0-9_]+)/g,"sh_string",-1]]];
+
+
+// PHP syntax module
+if(!this.sh_languages){this.sh_languages={}}sh_languages.php=[[[/\b(?:include|include_once|require|require_once)\b/g,"sh_preproc",-1],[/\/\//g,"sh_comment",1],[/#/g,"sh_comment",1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",2],[/'/g,"sh_string",3],[/\b(?:and|or|xor|__FILE__|exception|php_user_filter|__LINE__|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|each|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|for|foreach|function|global|if|isset|list|new|old_function|print|return|static|switch|unset|use|var|while|__FUNCTION__|__CLASS__|__METHOD__)\b/g,"sh_keyword",-1],[/\/\/\//g,"sh_comment",4],[/\/\//g,"sh_comment",1],[/\/\*\*/g,"sh_comment",9],[/\/\*/g,"sh_comment",10],[/(?:\$[#]?|@|%)[A-Za-z0-9_]+/g,"sh_variable",-1],[/<\?php|~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/\\(?:\\|')/g,null,-1],[/'/g,"sh_string",-2]],[[/$/g,null,-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",5,1],[/<!DOCTYPE/g,"sh_preproc",6,1],[/<!--/g,"sh_comment",7],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",8,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",8,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",7]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",5,1],[/<!DOCTYPE/g,"sh_preproc",6,1],[/<!--/g,"sh_comment",7],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",8,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",8,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\*\//g,"sh_comment",-2],[/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,"sh_url",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]]];
+
+
+// HTML syntax module
+if(!this.sh_languages){this.sh_languages={}}sh_languages.html=[[[/<\?xml/g,"sh_preproc",1,1],[/<!DOCTYPE/g,"sh_preproc",3,1],[/<!--/g,"sh_comment",4],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",5,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",5,1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]],[[/-->/g,"sh_comment",-2],[/<!--/g,"sh_comment",4]],[[/(?:\/)?>/g,"sh_keyword",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",2]]];
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/jquery.poshytip.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/jquery.poshytip.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/jquery.poshytip.js	(revision 28599)
@@ -0,0 +1,470 @@
+/*
+ * Poshy Tip jQuery plugin v1.1
+ * http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/
+ * Copyright 2010-2011, Vasil Dinkov, http://vadikom.com/
+ */
+
+(function($) {
+
+	var tips = [],
+		reBgImage = /^url\(["']?([^"'\)]*)["']?\);?$/i,
+		rePNG = /\.png$/i,
+		ie6 = $.browser.msie && $.browser.version == 6;
+
+	// make sure the tips' position is updated on resize
+	function handleWindowResize() {
+		$.each(tips, function() {
+			this.refresh(true);
+		});
+	}
+	$(window).resize(handleWindowResize);
+
+	$.Poshytip = function(elm, options) {
+		this.$elm = $(elm);
+		this.opts = $.extend({}, $.fn.poshytip.defaults, options);
+		this.$tip = $(['<div class="',this.opts.className,'">',
+				'<div class="tip-inner tip-bg-image"></div>',
+				'<div class="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left"></div>',
+			'</div>'].join('')).appendTo(document.body);
+		this.$arrow = this.$tip.find('div.tip-arrow');
+		this.$inner = this.$tip.find('div.tip-inner');
+		this.disabled = false;
+		this.content = null;
+		this.init();
+	};
+
+	$.Poshytip.prototype = {
+		init: function() {
+			tips.push(this);
+
+			// save the original title and a reference to the Poshytip object
+			var title = this.$elm.attr('title');
+			this.$elm.data('title.poshytip', title !== undefined ? title : null)
+				.data('poshytip', this);
+
+			// hook element events
+			if (this.opts.showOn != 'none') {
+				this.$elm.bind({
+					'mouseenter.poshytip': $.proxy(this.mouseenter, this),
+					'mouseleave.poshytip': $.proxy(this.mouseleave, this)
+				});
+				switch (this.opts.showOn) {
+					case 'hover':
+						if (this.opts.alignTo == 'cursor')
+							this.$elm.bind('mousemove.poshytip', $.proxy(this.mousemove, this));
+						if (this.opts.allowTipHover)
+							this.$tip.hover($.proxy(this.clearTimeouts, this), $.proxy(this.mouseleave, this));
+						break;
+					case 'focus':
+						this.$elm.bind({
+							'focus.poshytip': $.proxy(this.show, this),
+							'blur.poshytip': $.proxy(this.hide, this)
+						});
+						break;
+				}
+			}
+		},
+		mouseenter: function(e) {
+			if (this.disabled)
+				return true;
+
+			this.$elm.attr('title', '');
+			if (this.opts.showOn == 'focus')
+				return true;
+
+			this.clearTimeouts();
+			this.showTimeout = setTimeout($.proxy(this.show, this), this.opts.showTimeout);
+		},
+		mouseleave: function(e) {
+			if (this.disabled || this.asyncAnimating && (this.$tip[0] === e.relatedTarget || jQuery.contains(this.$tip[0], e.relatedTarget)))
+				return true;
+
+			var title = this.$elm.data('title.poshytip');
+			if (title !== null)
+				this.$elm.attr('title', title);
+			if (this.opts.showOn == 'focus')
+				return true;
+
+			this.clearTimeouts();
+			this.hideTimeout = setTimeout($.proxy(this.hide, this), this.opts.hideTimeout);
+		},
+		mousemove: function(e) {
+			if (this.disabled)
+				return true;
+
+			this.eventX = e.pageX;
+			this.eventY = e.pageY;
+			if (this.opts.followCursor && this.$tip.data('active')) {
+				this.calcPos();
+				this.$tip.css({left: this.pos.l, top: this.pos.t});
+				if (this.pos.arrow)
+					this.$arrow[0].className = 'tip-arrow tip-arrow-' + this.pos.arrow;
+			}
+		},
+		show: function() {
+			if (this.disabled || this.$tip.data('active'))
+				return;
+
+			this.reset();
+			this.update();
+			this.display();
+			if (this.opts.timeOnScreen)
+				setTimeout($.proxy(this.hide, this), this.opts.timeOnScreen);
+		},
+		hide: function() {
+			if (this.disabled || !this.$tip.data('active'))
+				return;
+
+			this.display(true);
+		},
+		reset: function() {
+			this.$tip.queue([]).detach().css('visibility', 'hidden').data('active', false);
+			this.$inner.find('*').poshytip('hide');
+			if (this.opts.fade)
+				this.$tip.css('opacity', this.opacity);
+			this.$arrow[0].className = 'tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left';
+			this.asyncAnimating = false;
+		},
+		update: function(content, dontOverwriteOption) {
+			if (this.disabled)
+				return;
+
+			var async = content !== undefined;
+			if (async) {
+				if (!dontOverwriteOption)
+					this.opts.content = content;
+				if (!this.$tip.data('active'))
+					return;
+			} else {
+				content = this.opts.content;
+			}
+
+			// update content only if it has been changed since last time
+			var self = this,
+				newContent = typeof content == 'function' ?
+					content.call(this.$elm[0], function(newContent) {
+						self.update(newContent);
+					}) :
+					content == '[title]' ? this.$elm.data('title.poshytip') : content;
+			if (this.content !== newContent) {
+				this.$inner.empty().append(newContent);
+				this.content = newContent;
+			}
+
+			this.refresh(async);
+		},
+		refresh: function(async) {
+			if (this.disabled)
+				return;
+
+			if (async) {
+				if (!this.$tip.data('active'))
+					return;
+				// save current position as we will need to animate
+				var currPos = {left: this.$tip.css('left'), top: this.$tip.css('top')};
+			}
+
+			// reset position to avoid text wrapping, etc.
+			this.$tip.css({left: 0, top: 0}).appendTo(document.body);
+
+			// save default opacity
+			if (this.opacity === undefined)
+				this.opacity = this.$tip.css('opacity');
+
+			// check for images - this code is here (i.e. executed each time we show the tip and not on init) due to some browser inconsistencies
+			var bgImage = this.$tip.css('background-image').match(reBgImage),
+				arrow = this.$arrow.css('background-image').match(reBgImage);
+
+			if (bgImage) {
+				var bgImagePNG = rePNG.test(bgImage[1]);
+				// fallback to background-color/padding/border in IE6 if a PNG is used
+				if (ie6 && bgImagePNG) {
+					this.$tip.css('background-image', 'none');
+					this.$inner.css({margin: 0, border: 0, padding: 0});
+					bgImage = bgImagePNG = false;
+				} else {
+					this.$tip.prepend('<table border="0" cellpadding="0" cellspacing="0"><tr><td class="tip-top tip-bg-image" colspan="2"><span></span></td><td class="tip-right tip-bg-image" rowspan="2"><span></span></td></tr><tr><td class="tip-left tip-bg-image" rowspan="2"><span></span></td><td></td></tr><tr><td class="tip-bottom tip-bg-image" colspan="2"><span></span></td></tr></table>')
+						.css({border: 0, padding: 0, 'background-image': 'none', 'background-color': 'transparent'})
+						.find('.tip-bg-image').css('background-image', 'url("' + bgImage[1] +'")').end()
+						.find('td').eq(3).append(this.$inner);
+				}
+				// disable fade effect in IE due to Alpha filter + translucent PNG issue
+				if (bgImagePNG && !$.support.opacity)
+					this.opts.fade = false;
+			}
+			// IE arrow fixes
+			if (arrow && !$.support.opacity) {
+				// disable arrow in IE6 if using a PNG
+				if (ie6 && rePNG.test(arrow[1])) {
+					arrow = false;
+					this.$arrow.css('background-image', 'none');
+				}
+				// disable fade effect in IE due to Alpha filter + translucent PNG issue
+				this.opts.fade = false;
+			}
+
+			var $table = this.$tip.find('table');
+			if (ie6) {
+				// fix min/max-width in IE6
+				this.$tip[0].style.width = '';
+				$table.width('auto').find('td').eq(3).width('auto');
+				var tipW = this.$tip.width(),
+					minW = parseInt(this.$tip.css('min-width')),
+					maxW = parseInt(this.$tip.css('max-width'));
+				if (!isNaN(minW) && tipW < minW)
+					tipW = minW;
+				else if (!isNaN(maxW) && tipW > maxW)
+					tipW = maxW;
+				this.$tip.add($table).width(tipW).eq(0).find('td').eq(3).width('100%');
+			} else if ($table[0]) {
+				// fix the table width if we are using a background image
+				// IE9, FF4 use float numbers for width/height so use getComputedStyle for them to avoid text wrapping
+				// for details look at: http://vadikom.com/dailies/offsetwidth-offsetheight-useless-in-ie9-firefox4/
+				$table.width('auto').find('td').eq(3).width('auto').end().end().width(document.defaultView && document.defaultView.getComputedStyle && parseFloat(document.defaultView.getComputedStyle(this.$tip[0], null).width) || this.$tip.width()).find('td').eq(3).width('100%');
+			}
+			this.tipOuterW = this.$tip.outerWidth();
+			this.tipOuterH = this.$tip.outerHeight();
+
+			this.calcPos();
+
+			// position and show the arrow image
+			if (arrow && this.pos.arrow) {
+				this.$arrow[0].className = 'tip-arrow tip-arrow-' + this.pos.arrow;
+				this.$arrow.css('visibility', 'inherit');
+			}
+
+			if (async) {
+				this.asyncAnimating = true;
+				var self = this;
+				this.$tip.css(currPos).animate({left: this.pos.l, top: this.pos.t}, 200, function() { self.asyncAnimating = false; });
+			} else {
+				this.$tip.css({left: this.pos.l, top: this.pos.t});
+			}
+		},
+		display: function(hide) {
+			var active = this.$tip.data('active');
+			if (active && !hide || !active && hide)
+				return;
+
+			this.$tip.stop();
+			if ((this.opts.slide && this.pos.arrow || this.opts.fade) && (hide && this.opts.hideAniDuration || !hide && this.opts.showAniDuration)) {
+				var from = {}, to = {};
+				// this.pos.arrow is only undefined when alignX == alignY == 'center' and we don't need to slide in that rare case
+				if (this.opts.slide && this.pos.arrow) {
+					var prop, arr;
+					if (this.pos.arrow == 'bottom' || this.pos.arrow == 'top') {
+						prop = 'top';
+						arr = 'bottom';
+					} else {
+						prop = 'left';
+						arr = 'right';
+					}
+					var val = parseInt(this.$tip.css(prop));
+					from[prop] = val + (hide ? 0 : (this.pos.arrow == arr ? -this.opts.slideOffset : this.opts.slideOffset));
+					to[prop] = val + (hide ? (this.pos.arrow == arr ? this.opts.slideOffset : -this.opts.slideOffset) : 0) + 'px';
+				}
+				if (this.opts.fade) {
+					from.opacity = hide ? this.$tip.css('opacity') : 0;
+					to.opacity = hide ? 0 : this.opacity;
+				}
+				this.$tip.css(from).animate(to, this.opts[hide ? 'hideAniDuration' : 'showAniDuration']);
+			}
+			hide ? this.$tip.queue($.proxy(this.reset, this)) : this.$tip.css('visibility', 'inherit');
+			this.$tip.data('active', !active);
+		},
+		disable: function() {
+			this.reset();
+			this.disabled = true;
+		},
+		enable: function() {
+			this.disabled = false;
+		},
+		destroy: function() {
+			this.reset();
+			this.$tip.remove();
+			delete this.$tip;
+			this.content = null;
+			this.$elm.unbind('.poshytip').removeData('title.poshytip').removeData('poshytip');
+			tips.splice($.inArray(this, tips), 1);
+		},
+		clearTimeouts: function() {
+			if (this.showTimeout) {
+				clearTimeout(this.showTimeout);
+				this.showTimeout = 0;
+			}
+			if (this.hideTimeout) {
+				clearTimeout(this.hideTimeout);
+				this.hideTimeout = 0;
+			}
+		},
+		calcPos: function() {
+			var pos = {l: 0, t: 0, arrow: ''},
+				$win = $(window),
+				win = {
+					l: $win.scrollLeft(),
+					t: $win.scrollTop(),
+					w: $win.width(),
+					h: $win.height()
+				}, xL, xC, xR, yT, yC, yB;
+			if (this.opts.alignTo == 'cursor') {
+				xL = xC = xR = this.eventX;
+				yT = yC = yB = this.eventY;
+			} else { // this.opts.alignTo == 'target'
+				var elmOffset = this.$elm.offset(),
+					elm = {
+						l: elmOffset.left,
+						t: elmOffset.top,
+						w: this.$elm.outerWidth(),
+						h: this.$elm.outerHeight()
+					};
+				xL = elm.l + (this.opts.alignX != 'inner-right' ? 0 : elm.w);	// left edge
+				xC = xL + Math.floor(elm.w / 2);				// h center
+				xR = xL + (this.opts.alignX != 'inner-left' ? elm.w : 0);	// right edge
+				yT = elm.t + (this.opts.alignY != 'inner-bottom' ? 0 : elm.h);	// top edge
+				yC = yT + Math.floor(elm.h / 2);				// v center
+				yB = yT + (this.opts.alignY != 'inner-top' ? elm.h : 0);	// bottom edge
+			}
+
+			// keep in viewport and calc arrow position
+			switch (this.opts.alignX) {
+				case 'right':
+				case 'inner-left':
+					pos.l = xR + this.opts.offsetX;
+					if (pos.l + this.tipOuterW > win.l + win.w)
+						pos.l = win.l + win.w - this.tipOuterW;
+					if (this.opts.alignX == 'right' || this.opts.alignY == 'center')
+						pos.arrow = 'left';
+					break;
+				case 'center':
+					pos.l = xC - Math.floor(this.tipOuterW / 2);
+					if (pos.l + this.tipOuterW > win.l + win.w)
+						pos.l = win.l + win.w - this.tipOuterW;
+					else if (pos.l < win.l)
+						pos.l = win.l;
+					break;
+				default: // 'left' || 'inner-right'
+					pos.l = xL - this.tipOuterW - this.opts.offsetX;
+					if (pos.l < win.l)
+						pos.l = win.l;
+					if (this.opts.alignX == 'left' || this.opts.alignY == 'center')
+						pos.arrow = 'right';
+			}
+			switch (this.opts.alignY) {
+				case 'bottom':
+				case 'inner-top':
+					pos.t = yB + this.opts.offsetY;
+					// 'left' and 'right' need priority for 'target'
+					if (!pos.arrow || this.opts.alignTo == 'cursor')
+						pos.arrow = 'top';
+					if (pos.t + this.tipOuterH > win.t + win.h) {
+						pos.t = yT - this.tipOuterH - this.opts.offsetY;
+						if (pos.arrow == 'top')
+							pos.arrow = 'bottom';
+					}
+					break;
+				case 'center':
+					pos.t = yC - Math.floor(this.tipOuterH / 2);
+					if (pos.t + this.tipOuterH > win.t + win.h)
+						pos.t = win.t + win.h - this.tipOuterH;
+					else if (pos.t < win.t)
+						pos.t = win.t;
+					break;
+				default: // 'top' || 'inner-bottom'
+					pos.t = yT - this.tipOuterH - this.opts.offsetY;
+					// 'left' and 'right' need priority for 'target'
+					if (!pos.arrow || this.opts.alignTo == 'cursor')
+						pos.arrow = 'bottom';
+					if (pos.t < win.t) {
+						pos.t = yB + this.opts.offsetY;
+						if (pos.arrow == 'bottom')
+							pos.arrow = 'top';
+					}
+			}
+			this.pos = pos;
+		}
+	};
+
+	$.fn.poshytip = function(options) {
+		if (typeof options == 'string') {
+			var args = arguments,
+				method = options;
+			Array.prototype.shift.call(args);
+			// unhook live events if 'destroy' is called
+			if (method == 'destroy')
+				this.die('mouseenter.poshytip').die('focus.poshytip');
+			return this.each(function() {
+				var poshytip = $(this).data('poshytip');
+				if (poshytip && poshytip[method])
+					poshytip[method].apply(poshytip, args);
+			});
+		}
+
+		var opts = $.extend({}, $.fn.poshytip.defaults, options);
+
+		// generate CSS for this tip class if not already generated
+		if (!$('#poshytip-css-' + opts.className)[0])
+			$(['<style id="poshytip-css-',opts.className,'" type="text/css">',
+				'div.',opts.className,'{visibility:hidden;position:absolute;top:0;left:0;}',
+				'div.',opts.className,' table, div.',opts.className,' td{margin:0;font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-variant:inherit;}',
+				'div.',opts.className,' td.tip-bg-image span{display:block;font:1px/1px sans-serif;height:',opts.bgImageFrameSize,'px;width:',opts.bgImageFrameSize,'px;overflow:hidden;}',
+				'div.',opts.className,' td.tip-right{background-position:100% 0;}',
+				'div.',opts.className,' td.tip-bottom{background-position:100% 100%;}',
+				'div.',opts.className,' td.tip-left{background-position:0 100%;}',
+				'div.',opts.className,' div.tip-inner{background-position:-',opts.bgImageFrameSize,'px -',opts.bgImageFrameSize,'px;}',
+				'div.',opts.className,' div.tip-arrow{visibility:hidden;position:absolute;overflow:hidden;font:1px/1px sans-serif;}',
+			'</style>'].join('')).appendTo('head');
+
+		// check if we need to hook live events
+		if (opts.liveEvents && opts.showOn != 'none') {
+			var deadOpts = $.extend({}, opts, { liveEvents: false });
+			switch (opts.showOn) {
+				case 'hover':
+					this.live('mouseenter.poshytip', function() {
+						var $this = $(this);
+						if (!$this.data('poshytip'))
+							$this.poshytip(deadOpts).poshytip('mouseenter');
+					});
+					break;
+				case 'focus':
+					this.live('focus.poshytip', function() {
+						var $this = $(this);
+						if (!$this.data('poshytip'))
+							$this.poshytip(deadOpts).poshytip('show');
+					});
+					break;
+			}
+			return this;
+		}
+
+		return this.each(function() {
+			new $.Poshytip(this, opts);
+		});
+	}
+
+	// default settings
+	$.fn.poshytip.defaults = {
+		content: 		'[title]',	// content to display ('[title]', 'string', element, function(updateCallback){...}, jQuery)
+		className:		'tip-yellow',	// class for the tips
+		bgImageFrameSize:	10,		// size in pixels for the background-image (if set in CSS) frame around the inner content of the tip
+		showTimeout:		500,		// timeout before showing the tip (in milliseconds 1000 == 1 second)
+		hideTimeout:		100,		// timeout before hiding the tip
+		timeOnScreen:		0,		// timeout before automatically hiding the tip after showing it (set to > 0 in order to activate)
+		showOn:			'hover',	// handler for showing the tip ('hover', 'focus', 'none') - use 'none' to trigger it manually
+		liveEvents:		false,		// use live events
+		alignTo:		'cursor',	// align/position the tip relative to ('cursor', 'target')
+		alignX:			'right',	// horizontal alignment for the tip relative to the mouse cursor or the target element
+							// ('right', 'center', 'left', 'inner-left', 'inner-right') - 'inner-*' matter if alignTo:'target'
+		alignY:			'top',		// vertical alignment for the tip relative to the mouse cursor or the target element
+							// ('bottom', 'center', 'top', 'inner-bottom', 'inner-top') - 'inner-*' matter if alignTo:'target'
+		offsetX:		-22,		// offset X pixels from the default position - doesn't matter if alignX:'center'
+		offsetY:		18,		// offset Y pixels from the default position - doesn't matter if alignY:'center'
+		allowTipHover:		true,		// allow hovering the tip without hiding it onmouseout of the target - matters only if showOn:'hover'
+		followCursor:		false,		// if the tip should follow the cursor - matters only if showOn:'hover' and alignTo:'cursor'
+		fade: 			true,		// use fade animation
+		slide: 			true,		// use slide animation
+		slideOffset: 		8,		// slide animation offset
+		showAniDuration: 	300,		// show animation duration - set to 0 if you don't want show animation
+		hideAniDuration: 	300		// hide animation duration - set to 0 if you don't want hide animation
+	};
+
+})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/jquery.poshytip.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/jquery.poshytip.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/jquery.poshytip.min.js	(revision 28599)
@@ -0,0 +1,7 @@
+/*
+ * Poshy Tip jQuery plugin v1.1
+ * http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/
+ * Copyright 2010-2011, Vasil Dinkov, http://vadikom.com/
+ */
+
+(function(e){var a=[],d=/^url\(["']?([^"'\)]*)["']?\);?$/i,c=/\.png$/i,b=e.browser.msie&&e.browser.version==6;function f(){e.each(a,function(){this.refresh(true)})}e(window).resize(f);e.Poshytip=function(h,g){this.$elm=e(h);this.opts=e.extend({},e.fn.poshytip.defaults,g);this.$tip=e(['<div class="',this.opts.className,'">','<div class="tip-inner tip-bg-image"></div>','<div class="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left"></div>',"</div>"].join("")).appendTo(document.body);this.$arrow=this.$tip.find("div.tip-arrow");this.$inner=this.$tip.find("div.tip-inner");this.disabled=false;this.content=null;this.init()};e.Poshytip.prototype={init:function(){a.push(this);var g=this.$elm.attr("title");this.$elm.data("title.poshytip",g!==undefined?g:null).data("poshytip",this);if(this.opts.showOn!="none"){this.$elm.bind({"mouseenter.poshytip":e.proxy(this.mouseenter,this),"mouseleave.poshytip":e.proxy(this.mouseleave,this)});switch(this.opts.showOn){case"hover":if(this.opts.alignTo=="cursor"){this.$elm.bind("mousemove.poshytip",e.proxy(this.mousemove,this))}if(this.opts.allowTipHover){this.$tip.hover(e.proxy(this.clearTimeouts,this),e.proxy(this.mouseleave,this))}break;case"focus":this.$elm.bind({"focus.poshytip":e.proxy(this.show,this),"blur.poshytip":e.proxy(this.hide,this)});break}}},mouseenter:function(g){if(this.disabled){return true}this.$elm.attr("title","");if(this.opts.showOn=="focus"){return true}this.clearTimeouts();this.showTimeout=setTimeout(e.proxy(this.show,this),this.opts.showTimeout)},mouseleave:function(g){if(this.disabled||this.asyncAnimating&&(this.$tip[0]===g.relatedTarget||jQuery.contains(this.$tip[0],g.relatedTarget))){return true}var h=this.$elm.data("title.poshytip");if(h!==null){this.$elm.attr("title",h)}if(this.opts.showOn=="focus"){return true}this.clearTimeouts();this.hideTimeout=setTimeout(e.proxy(this.hide,this),this.opts.hideTimeout)},mousemove:function(g){if(this.disabled){return true}this.eventX=g.pageX;this.eventY=g.pageY;if(this.opts.followCursor&&this.$tip.data("active")){this.calcPos();this.$tip.css({left:this.pos.l,top:this.pos.t});if(this.pos.arrow){this.$arrow[0].className="tip-arrow tip-arrow-"+this.pos.arrow}}},show:function(){if(this.disabled||this.$tip.data("active")){return}this.reset();this.update();this.display();if(this.opts.timeOnScreen){setTimeout(e.proxy(this.hide,this),this.opts.timeOnScreen)}},hide:function(){if(this.disabled||!this.$tip.data("active")){return}this.display(true)},reset:function(){this.$tip.queue([]).detach().css("visibility","hidden").data("active",false);this.$inner.find("*").poshytip("hide");if(this.opts.fade){this.$tip.css("opacity",this.opacity)}this.$arrow[0].className="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left";this.asyncAnimating=false},update:function(j,k){if(this.disabled){return}var i=j!==undefined;if(i){if(!k){this.opts.content=j}if(!this.$tip.data("active")){return}}else{j=this.opts.content}var h=this,g=typeof j=="function"?j.call(this.$elm[0],function(l){h.update(l)}):j=="[title]"?this.$elm.data("title.poshytip"):j;if(this.content!==g){this.$inner.empty().append(g);this.content=g}this.refresh(i)},refresh:function(h){if(this.disabled){return}if(h){if(!this.$tip.data("active")){return}var k={left:this.$tip.css("left"),top:this.$tip.css("top")}}this.$tip.css({left:0,top:0}).appendTo(document.body);if(this.opacity===undefined){this.opacity=this.$tip.css("opacity")}var l=this.$tip.css("background-image").match(d),m=this.$arrow.css("background-image").match(d);if(l){var i=c.test(l[1]);if(b&&i){this.$tip.css("background-image","none");this.$inner.css({margin:0,border:0,padding:0});l=i=false}else{this.$tip.prepend('<table border="0" cellpadding="0" cellspacing="0"><tr><td class="tip-top tip-bg-image" colspan="2"><span></span></td><td class="tip-right tip-bg-image" rowspan="2"><span></span></td></tr><tr><td class="tip-left tip-bg-image" rowspan="2"><span></span></td><td></td></tr><tr><td class="tip-bottom tip-bg-image" colspan="2"><span></span></td></tr></table>').css({border:0,padding:0,"background-image":"none","background-color":"transparent"}).find(".tip-bg-image").css("background-image",'url("'+l[1]+'")').end().find("td").eq(3).append(this.$inner)}if(i&&!e.support.opacity){this.opts.fade=false}}if(m&&!e.support.opacity){if(b&&c.test(m[1])){m=false;this.$arrow.css("background-image","none")}this.opts.fade=false}var o=this.$tip.find("table");if(b){this.$tip[0].style.width="";o.width("auto").find("td").eq(3).width("auto");var n=this.$tip.width(),j=parseInt(this.$tip.css("min-width")),g=parseInt(this.$tip.css("max-width"));if(!isNaN(j)&&n<j){n=j}else{if(!isNaN(g)&&n>g){n=g}}this.$tip.add(o).width(n).eq(0).find("td").eq(3).width("100%")}else{if(o[0]){o.width("auto").find("td").eq(3).width("auto").end().end().width(document.defaultView&&document.defaultView.getComputedStyle&&parseFloat(document.defaultView.getComputedStyle(this.$tip[0],null).width)||this.$tip.width()).find("td").eq(3).width("100%")}}this.tipOuterW=this.$tip.outerWidth();this.tipOuterH=this.$tip.outerHeight();this.calcPos();if(m&&this.pos.arrow){this.$arrow[0].className="tip-arrow tip-arrow-"+this.pos.arrow;this.$arrow.css("visibility","inherit")}if(h){this.asyncAnimating=true;var p=this;this.$tip.css(k).animate({left:this.pos.l,top:this.pos.t},200,function(){p.asyncAnimating=false})}else{this.$tip.css({left:this.pos.l,top:this.pos.t})}},display:function(h){var i=this.$tip.data("active");if(i&&!h||!i&&h){return}this.$tip.stop();if((this.opts.slide&&this.pos.arrow||this.opts.fade)&&(h&&this.opts.hideAniDuration||!h&&this.opts.showAniDuration)){var m={},l={};if(this.opts.slide&&this.pos.arrow){var k,g;if(this.pos.arrow=="bottom"||this.pos.arrow=="top"){k="top";g="bottom"}else{k="left";g="right"}var j=parseInt(this.$tip.css(k));m[k]=j+(h?0:(this.pos.arrow==g?-this.opts.slideOffset:this.opts.slideOffset));l[k]=j+(h?(this.pos.arrow==g?this.opts.slideOffset:-this.opts.slideOffset):0)+"px"}if(this.opts.fade){m.opacity=h?this.$tip.css("opacity"):0;l.opacity=h?0:this.opacity}this.$tip.css(m).animate(l,this.opts[h?"hideAniDuration":"showAniDuration"])}h?this.$tip.queue(e.proxy(this.reset,this)):this.$tip.css("visibility","inherit");this.$tip.data("active",!i)},disable:function(){this.reset();this.disabled=true},enable:function(){this.disabled=false},destroy:function(){this.reset();this.$tip.remove();delete this.$tip;this.content=null;this.$elm.unbind(".poshytip").removeData("title.poshytip").removeData("poshytip");a.splice(e.inArray(this,a),1)},clearTimeouts:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},calcPos:function(){var n={l:0,t:0,arrow:""},h=e(window),k={l:h.scrollLeft(),t:h.scrollTop(),w:h.width(),h:h.height()},p,j,m,i,q,g;if(this.opts.alignTo=="cursor"){p=j=m=this.eventX;i=q=g=this.eventY}else{var o=this.$elm.offset(),l={l:o.left,t:o.top,w:this.$elm.outerWidth(),h:this.$elm.outerHeight()};p=l.l+(this.opts.alignX!="inner-right"?0:l.w);j=p+Math.floor(l.w/2);m=p+(this.opts.alignX!="inner-left"?l.w:0);i=l.t+(this.opts.alignY!="inner-bottom"?0:l.h);q=i+Math.floor(l.h/2);g=i+(this.opts.alignY!="inner-top"?l.h:0)}switch(this.opts.alignX){case"right":case"inner-left":n.l=m+this.opts.offsetX;if(n.l+this.tipOuterW>k.l+k.w){n.l=k.l+k.w-this.tipOuterW}if(this.opts.alignX=="right"||this.opts.alignY=="center"){n.arrow="left"}break;case"center":n.l=j-Math.floor(this.tipOuterW/2);if(n.l+this.tipOuterW>k.l+k.w){n.l=k.l+k.w-this.tipOuterW}else{if(n.l<k.l){n.l=k.l}}break;default:n.l=p-this.tipOuterW-this.opts.offsetX;if(n.l<k.l){n.l=k.l}if(this.opts.alignX=="left"||this.opts.alignY=="center"){n.arrow="right"}}switch(this.opts.alignY){case"bottom":case"inner-top":n.t=g+this.opts.offsetY;if(!n.arrow||this.opts.alignTo=="cursor"){n.arrow="top"}if(n.t+this.tipOuterH>k.t+k.h){n.t=i-this.tipOuterH-this.opts.offsetY;if(n.arrow=="top"){n.arrow="bottom"}}break;case"center":n.t=q-Math.floor(this.tipOuterH/2);if(n.t+this.tipOuterH>k.t+k.h){n.t=k.t+k.h-this.tipOuterH}else{if(n.t<k.t){n.t=k.t}}break;default:n.t=i-this.tipOuterH-this.opts.offsetY;if(!n.arrow||this.opts.alignTo=="cursor"){n.arrow="bottom"}if(n.t<k.t){n.t=g+this.opts.offsetY;if(n.arrow=="bottom"){n.arrow="top"}}}this.pos=n}};e.fn.poshytip=function(h){if(typeof h=="string"){var g=arguments,k=h;Array.prototype.shift.call(g);if(k=="destroy"){this.die("mouseenter.poshytip").die("focus.poshytip")}return this.each(function(){var l=e(this).data("poshytip");if(l&&l[k]){l[k].apply(l,g)}})}var i=e.extend({},e.fn.poshytip.defaults,h);if(!e("#poshytip-css-"+i.className)[0]){e(['<style id="poshytip-css-',i.className,'" type="text/css">',"div.",i.className,"{visibility:hidden;position:absolute;top:0;left:0;}","div.",i.className," table, div.",i.className," td{margin:0;font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-variant:inherit;}","div.",i.className," td.tip-bg-image span{display:block;font:1px/1px sans-serif;height:",i.bgImageFrameSize,"px;width:",i.bgImageFrameSize,"px;overflow:hidden;}","div.",i.className," td.tip-right{background-position:100% 0;}","div.",i.className," td.tip-bottom{background-position:100% 100%;}","div.",i.className," td.tip-left{background-position:0 100%;}","div.",i.className," div.tip-inner{background-position:-",i.bgImageFrameSize,"px -",i.bgImageFrameSize,"px;}","div.",i.className," div.tip-arrow{visibility:hidden;position:absolute;overflow:hidden;font:1px/1px sans-serif;}","</style>"].join("")).appendTo("head")}if(i.liveEvents&&i.showOn!="none"){var j=e.extend({},i,{liveEvents:false});switch(i.showOn){case"hover":this.live("mouseenter.poshytip",function(){var l=e(this);if(!l.data("poshytip")){l.poshytip(j).poshytip("mouseenter")}});break;case"focus":this.live("focus.poshytip",function(){var l=e(this);if(!l.data("poshytip")){l.poshytip(j).poshytip("show")}});break}return this}return this.each(function(){new e.Poshytip(this,i)})};e.fn.poshytip.defaults={content:"[title]",className:"tip-yellow",bgImageFrameSize:10,showTimeout:500,hideTimeout:100,timeOnScreen:0,showOn:"hover",liveEvents:false,alignTo:"cursor",alignX:"right",alignY:"top",offsetX:-22,offsetY:18,allowTipHover:true,followCursor:false,fade:true,slide:true,slideOffset:8,showAniDuration:300,hideAniDuration:300}})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-darkgray/tip-darkgray.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-darkgray/tip-darkgray.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-darkgray/tip-darkgray.css	(revision 28599)
@@ -0,0 +1,62 @@
+.tip-darkgray {
+	opacity:0.95;
+	z-index:1000;
+	text-align:left;
+	text-shadow:#444 0 1px 1px;
+	border:1px solid #888;
+	padding:8px;
+	min-width:50px;
+	max-width:530px;
+	color:#fff;
+	background-color:#999;
+	background-image:url(tip-darkgray.png); /* bgImageFrameSize >= 11 should work fine */
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-darkgray .tip-inner {
+	font:bold 12px/18px arial,helvetica,sans-serif;
+	margin-top:-1px;
+	padding:0 4px 3px 4px;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-darkgray .tip-arrow-top {
+	margin-top:-7px;
+	margin-left:15px;
+	top:0;
+	left:0;
+	width:16px;
+	height:10px;
+	background:url(tip-darkgray_arrows.png) no-repeat;
+}
+.tip-darkgray .tip-arrow-right {
+	margin-top:-9px; /* approx. half the height to center it */
+	margin-left:-7px;
+	top:50%;
+	left:100%;
+	width:11px;
+	height:21px;
+	background:url(tip-darkgray_arrows.png) no-repeat -22px 0;
+}
+.tip-darkgray .tip-arrow-bottom {
+	margin-top:-7px;
+	margin-left:15px;
+	top:100%;
+	left:0;
+	width:22px;
+	height:13px;
+	background:url(tip-darkgray_arrows.png) no-repeat -44px 0;
+}
+.tip-darkgray .tip-arrow-left {
+	margin-top:-9px; /* approx. half the height to center it */
+	margin-left:-6px;
+	top:50%;
+	left:0;
+	width:11px;
+	height:21px;
+	background:url(tip-darkgray_arrows.png) no-repeat -66px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-green/tip-green.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-green/tip-green.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-green/tip-green.css	(revision 28599)
@@ -0,0 +1,57 @@
+.tip-green {
+	z-index:1000;
+	text-align:left;
+	border:1px solid #bdde98;
+	padding:7px 10px;
+	min-width:50px;
+	max-width:300px;
+	color:#860404;
+	background-color:#dff6c6;
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-green .tip-inner {
+	font:bold 12px/14px arial,helvetica,sans-serif;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-green .tip-arrow-top {
+	margin-top:-10px;
+	margin-left:6px;
+	top:0;
+	left:0;
+	width:10px;
+	height:10px;
+	background:url(tip-green_arrows.gif) no-repeat;
+}
+.tip-green .tip-arrow-right {
+	margin-top:6px;
+	margin-left:0;
+	top:0;
+	left:100%;
+	width:10px;
+	height:10px;
+	background:url(tip-green_arrows.gif) no-repeat -10px 0;
+}
+.tip-green .tip-arrow-bottom {
+	margin-top:0;
+	margin-left:6px;
+	top:100%;
+	left:0;
+	width:10px;
+	height:10px;
+	background:url(tip-green_arrows.gif) no-repeat -20px 0;
+}
+.tip-green .tip-arrow-left {
+	margin-top:6px;
+	margin-left:-10px;
+	top:0;
+	left:0;
+	width:10px;
+	height:10px;
+	background:url(tip-green_arrows.gif) no-repeat -30px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-skyblue/tip-skyblue.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-skyblue/tip-skyblue.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-skyblue/tip-skyblue.css	(revision 28599)
@@ -0,0 +1,58 @@
+.tip-skyblue {
+	z-index:1000;
+	text-align:left;
+	padding:8px 10px;
+	min-width:50px;
+	max-width:300px;
+	color:#37356c;
+	background-color:#b9f3f8;
+	background-image:url(tip-skyblue.png); /* bgImageFrameSize == 9 works fine */
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-skyblue .tip-inner {
+	font:bold 13px/15px 'trebuchet ms',arial,helvetica,sans-serif;
+	padding:0 3px 1px 3px;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-skyblue .tip-arrow-top {
+	margin-top:-12px;
+	margin-left:0;
+	top:0;
+	left:0;
+	width:11px;
+	height:19px;
+	background:url(tip-skyblue_arrows.png) no-repeat;
+}
+.tip-skyblue .tip-arrow-right {
+	margin-top:0;
+	margin-left:-7px;
+	top:0;
+	left:100%;
+	width:18px;
+	height:13px;
+	background:url(tip-skyblue_arrows.png) no-repeat -20px 0;
+}
+.tip-skyblue .tip-arrow-bottom {
+	margin-top:-8px;
+	margin-left:0;
+	top:100%;
+	left:0;
+	width:11px;
+	height:20px;
+	background:url(tip-skyblue_arrows.png) no-repeat -40px 0;
+}
+.tip-skyblue .tip-arrow-left {
+	margin-top:0;
+	margin-left:-11px;
+	top:0;
+	left:0;
+	width:18px;
+	height:13px;
+	background:url(tip-skyblue_arrows.png) no-repeat -60px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-twitter/tip-twitter.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-twitter/tip-twitter.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-twitter/tip-twitter.css	(revision 28599)
@@ -0,0 +1,59 @@
+.tip-twitter {
+	opacity:0.8;
+	z-index:1000;
+	text-align:left;
+	border-radius:4px;
+	-moz-border-radius:4px;
+	-webkit-border-radius:4px;
+	padding:8px 8px;
+	max-width:200px;
+	color:#fff;
+	background-color:#000;
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-twitter .tip-inner {
+	font:bold 11px/14px 'Lucida Grande',sans-serif;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-twitter .tip-arrow-top {
+	margin-top:-5px;
+	margin-left:-5px; /* approx. half the width to center it */
+	top:0;
+	left:50%;
+	width:9px;
+	height:5px;
+	background:url(tip-twitter_arrows.gif) no-repeat;
+}
+.tip-twitter .tip-arrow-right {
+	margin-top:-4px; /* approx. half the height to center it */
+	margin-left:0;
+	top:50%;
+	left:100%;
+	width:5px;
+	height:9px;
+	background:url(tip-twitter_arrows.gif) no-repeat -9px 0;
+}
+.tip-twitter .tip-arrow-bottom {
+	margin-top:0;
+	margin-left:-5px; /* approx. half the width to center it */
+	top:100%;
+	left:50%;
+	width:9px;
+	height:5px;
+	background:url(tip-twitter_arrows.gif) no-repeat -18px 0;
+}
+.tip-twitter .tip-arrow-left {
+	margin-top:-4px; /* approx. half the height to center it */
+	margin-left:-5px;
+	top:50%;
+	left:0;
+	width:5px;
+	height:9px;
+	background:url(tip-twitter_arrows.gif) no-repeat -27px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-violet/tip-violet.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-violet/tip-violet.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-violet/tip-violet.css	(revision 28599)
@@ -0,0 +1,60 @@
+.tip-violet {
+	z-index:1000;
+	text-align:left;
+	border:1px solid #afafaf;
+	padding:7px;
+	min-width:50px;
+	max-width:530px;
+	color:#860404;
+	background-color:#f2e7fd;
+	background-image:url(tip-violet.png); /* bgImageFrameSize >= 9 should work fine */
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-violet .tip-inner {
+	font:bold 12px/18px 'trebuchet ms',arial,helvetica,sans-serif;
+	margin-top:-1px;
+	padding:0 3px 2px 3px;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-violet .tip-arrow-top {
+	margin-top:-7px;
+	margin-left:15px;
+	top:0;
+	left:0;
+	width:16px;
+	height:10px;
+	background:url(tip-violet_arrows.png) no-repeat;
+}
+.tip-violet .tip-arrow-right {
+	margin-top:-9px; /* approx. half the height to center it */
+	margin-left:-4px;
+	top:50%;
+	left:100%;
+	width:10px;
+	height:20px;
+	background:url(tip-violet_arrows.png) no-repeat -16px 0;
+}
+.tip-violet .tip-arrow-bottom {
+	margin-top:-6px;
+	margin-left:15px;
+	top:100%;
+	left:0;
+	width:16px;
+	height:13px;
+	background:url(tip-violet_arrows.png) no-repeat -32px 0;
+}
+.tip-violet .tip-arrow-left {
+	margin-top:-9px; /* approx. half the height to center it */
+	margin-left:-6px;
+	top:50%;
+	left:0;
+	width:10px;
+	height:20px;
+	background:url(tip-violet_arrows.png) no-repeat -48px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-yellow/tip-yellow.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-yellow/tip-yellow.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-yellow/tip-yellow.css	(revision 28599)
@@ -0,0 +1,60 @@
+.tip-yellow {
+	z-index:1000;
+	text-align:left;
+	border:1px solid #939393;
+	padding:7px;
+	min-width:50px;
+	max-width:530px;
+	color:#8c3901;
+	background-color:#fef9d9;
+	background-image:url(tip-yellow.png); /* bgImageFrameSize >= 10 should work fine */
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-yellow .tip-inner {
+	font:bold 13px/18px 'trebuchet ms',arial,helvetica,sans-serif;
+	margin-top:-2px;
+	padding:0 3px 1px 3px;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-yellow .tip-arrow-top {
+	margin-top:-7px;
+	margin-left:15px;
+	top:0;
+	left:0;
+	width:16px;
+	height:10px;
+	background:url(tip-yellow_arrows.png) no-repeat;
+}
+.tip-yellow .tip-arrow-right {
+	margin-top:-9px; /* approx. half the height to center it */
+	margin-left:-4px;
+	top:50%;
+	left:100%;
+	width:10px;
+	height:20px;
+	background:url(tip-yellow_arrows.png) no-repeat -16px 0;
+}
+.tip-yellow .tip-arrow-bottom {
+	margin-top:-6px;
+	margin-left:15px;
+	top:100%;
+	left:0;
+	width:16px;
+	height:13px;
+	background:url(tip-yellow_arrows.png) no-repeat -32px 0;
+}
+.tip-yellow .tip-arrow-left {
+	margin-top:-9px; /* approx. half the height to center it */
+	margin-left:-6px;
+	top:50%;
+	left:0;
+	width:10px;
+	height:20px;
+	background:url(tip-yellow_arrows.png) no-repeat -48px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-yellowsimple/tip-yellowsimple.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-yellowsimple/tip-yellowsimple.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/poshytip-1.1/src/tip-yellowsimple/tip-yellowsimple.css	(revision 28599)
@@ -0,0 +1,60 @@
+.tip-yellowsimple {
+	z-index:1000;
+	text-align:left;
+	border:1px solid #c7bf93;
+	border-radius:4px;
+	-moz-border-radius:4px;
+	-webkit-border-radius:4px;
+	padding:6px 8px;
+	min-width:50px;
+	max-width:300px;
+	color:#000;
+	background-color:#fff9c9;
+	/**
+	 * - If you set a background-image, border/padding/background-color will be ingnored.
+	 *   You can set any padding to .tip-inner instead if you need.
+	 * - If you want a tiled background-image and border/padding for the tip,
+	 *   set the background-image to .tip-inner instead.
+	 */
+}
+.tip-yellowsimple .tip-inner {
+	font:12px/16px arial,helvetica,sans-serif;
+}
+
+/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
+.tip-yellowsimple .tip-arrow-top {
+	margin-top:-6px;
+	margin-left:-5px; /* approx. half the width to center it */
+	top:0;
+	left:50%;
+	width:9px;
+	height:6px;
+	background:url(tip-yellowsimple_arrows.gif) no-repeat;
+}
+.tip-yellowsimple .tip-arrow-right {
+	margin-top:-4px; /* approx. half the height to center it */
+	margin-left:0;
+	top:50%;
+	left:100%;
+	width:6px;
+	height:9px;
+	background:url(tip-yellowsimple_arrows.gif) no-repeat -9px 0;
+}
+.tip-yellowsimple .tip-arrow-bottom {
+	margin-top:0;
+	margin-left:-5px; /* approx. half the width to center it */
+	top:100%;
+	left:50%;
+	width:9px;
+	height:6px;
+	background:url(tip-yellowsimple_arrows.gif) no-repeat -18px 0;
+}
+.tip-yellowsimple .tip-arrow-left {
+	margin-top:-4px; /* approx. half the height to center it */
+	margin-left:-6px;
+	top:50%;
+	left:0;
+	width:6px;
+	height:9px;
+	background:url(tip-yellowsimple_arrows.gif) no-repeat -27px 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/changelog.txt
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/changelog.txt	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/changelog.txt	(revision 28599)
@@ -0,0 +1,74 @@
+Changelog for Superfish - a jQuery menu plugin
+
+v1.2.1:  	altered 2nd July 07. added hide() before animate to make work for jQuery 1.1.3.
+
+v1.2.2:  	altered 2nd August 07. changed over function .find('ul') to .find('>ul') for smoother animations
+			Also deleted the iframe removal lines - not necessary it turns out
+
+v1.2.3:		altered jquery 1.1.3.1 broke keyboard access - had to change quite a few things and set display:none on the
+			.superfish rule in CSS instead of top:-999em
+
+v1.3: 		Pretty much a complete overhaul to make all original features work in 1.1.3.1 and above.
+			.superfish rule reverted back to top:-999em (which is better).
+
+v1.3.1:		altered 'li[ul]' to $('li:has(ul)') to work with jQuery 1.2
+
+v1.3.2: 	added onshow callback option as requested - 'this' keyword refers to revealed ul.
+			fixed bug whereby multiple menus on a page shared options. Now each menu can have separate options.
+			fixed IE6 and IE7 bug whereby under certain circumstances => 3rd tier menus appear instantly with text missing when revisited
+
+v1.3.3: 	altered event attachment selectors for performance increase on menu setup.
+
+v1.3.4: 	fixed pathClass bug as current path was not being restored. Still doesn't if using keyboard nav (will work on that).
+
+v1.4: 		store options objects in array $.superfish.o. Also provide public access to $.superfish.defaults
+			provided backward compat for jQuery versions less than 1.2 via oldJquery option - will use li[ul] or li:has(ul) as needed
+			added more callbacks, also added option to disable hoverIntent usage if that plugin is detected
+
+v1.4.1: 	fixed current path not being restored when using keyboard to tab away from the menu completely
+			optimised code further - now less code
+			removed addself() in favour of backward compatible add(this)
+			also remove new mouseenter/mouseleave events on window.unload (due to paranoia)
+
+v1.4.2:		3rd July 2008. added semi-colon at start of superfish.js file to avert script concatenation errors
+			added pathLevels option to limit the depth of submenus that get restored by pathClass
+			CSS of main example hugely simplified - other example CSS files less-so.
+				- top level menu items are not fixed width
+				- only need to set submenu widths in one place.
+				- various other improvements.
+				- class names used in all CSS files are changed to be less generic
+			released optional Supersubs plugin which dynamically adjusts submenu widths
+			attach everything to jQuery.fn.superfish to clean up jQuery namespace
+			removed the multi-tier-all-horizontal-example as it was never a great idea and doesn't seem to be in use
+			Update documentation text and remove certain caveats which were there to support users of much older versions of Superfish
+			Documentation now show how to apply bgIgrame 2.1 - it's much easier than before
+			Add all links and their focus and blur events to the onunload unbind - paranoid about memory leaks
+
+v1.4.3		5th July 2008. documentation completely redone using Mike Alsup's templates.
+			CSS revised so that all types of menu use superfish.css as a base. Include additional CSS files to acheive alternate styles.
+			class="sf-menu sf-vertical" creates vertical menu, class="sf-menu sf-navbar" creates nav-bar style menu
+
+v1.4.4		7th July 2008. arrows feature added. If option 'autoArrows' is true, auto-appends (spans) to anchors that have a ul submenu sibling,
+			and adds class 'sf-with-ul' to anchor.
+			CSS added to style new arrows, including an 8-bit alpha (NOT INDEXED!) transparent png of arrow - degrades to solid for IE6.
+			Manually add arrow mark-up to docs and disable autoArrows (via defaults option) to maintain decent performance (for docs page)
+			Update docs, including zip download, to suit.
+			Fix CSS bug that had the third tier of the navbar-style menu visible when JS not available.
+			
+v1.4.5		9 July 2008. decreased code weight
+			added drop shadows for capable browsers - added css and 8-bit alpha transparent png image for shadow
+			remove support for jQuery v<1.2
+			remove unload clean-up which was there to solve garbage collection problems in early jQuery versions
+			remove toggling 'visibility' on hide and show which as a fix for an IE bug that is no longer exhibited
+			removed need for getOpts, rewrote getMenu
+			use [].join('') instead of string concatenation for performance increase - probably very slight in this case
+			change selector in 'over' function from '.'+o.hoverClass to 'li.'+o.hoverClass
+
+v1.4.6		added workaround for IE7 shadows. If animation alters opacity then shadow is hidden during the animation and appears after.
+			This required some JS and a line of CSS, so created shortcut references to lighten code further.
+			
+v1.4.7		added back in the visibility toggle that was removed in 1.4.5 as the bug is indeed still exhibited by IE6 & 7
+			tweaked the look of the shadow slightly and use nicer 32bit png as I now find they behave the same as 8bit png with regard to fades in IE7
+			
+v1.4.8		fix over-sight: using 32bit png meant that the shadow image did show in IE6. Rather than go back to 8bit, add code to exclude IE6 from getting shadow class.
+			use new folder structure recommended by Matt from TopicTrack, for easier updates.
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish-navbar.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish-navbar.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish-navbar.css	(revision 28599)
@@ -0,0 +1,93 @@
+
+/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
+.sf-navbar {
+	background:		#BDD2FF;
+	height:			2.5em;
+	padding-bottom:	2.5em;
+	position:		relative;
+}
+.sf-navbar li {
+	background:		#AABDE6;
+	position:		static;
+}
+.sf-navbar a {
+	border-top:		none;
+}
+.sf-navbar li ul {
+	width:			44em; /*IE6 soils itself without this*/
+}
+.sf-navbar li li {
+	background:		#BDD2FF;
+	position:		relative;
+}
+.sf-navbar li li ul {
+	width:			13em;
+}
+.sf-navbar li li li {
+	width:			100%;
+}
+.sf-navbar ul li {
+	width:			auto;
+	float:			left;
+}
+.sf-navbar a, .sf-navbar a:visited {
+	border:			none;
+}
+.sf-navbar li.current {
+	background:		#BDD2FF;
+}
+.sf-navbar li:hover,
+.sf-navbar li.sfHover,
+.sf-navbar li li.current,
+.sf-navbar a:focus, .sf-navbar a:hover, .sf-navbar a:active {
+	background:		#BDD2FF;
+}
+.sf-navbar ul li:hover,
+.sf-navbar ul li.sfHover,
+ul.sf-navbar ul li:hover li,
+ul.sf-navbar ul li.sfHover li,
+.sf-navbar ul a:focus, .sf-navbar ul a:hover, .sf-navbar ul a:active {
+	background:		#D1DFFF;
+}
+ul.sf-navbar li li li:hover,
+ul.sf-navbar li li li.sfHover,
+.sf-navbar li li.current li.current,
+.sf-navbar ul li li a:focus, .sf-navbar ul li li a:hover, .sf-navbar ul li li a:active {
+	background:		#E6EEFF;
+}
+ul.sf-navbar .current ul,
+ul.sf-navbar ul li:hover ul,
+ul.sf-navbar ul li.sfHover ul {
+	left:			0;
+	top:			2.5em; /* match top ul list item height */
+}
+ul.sf-navbar .current ul ul {
+	top: 			-999em;
+}
+
+.sf-navbar li li.current > a {
+	font-weight:	bold;
+}
+
+/*** point all arrows down ***/
+/* point right for anchors in subs */
+.sf-navbar ul .sf-sub-indicator { background-position: -10px -100px; }
+.sf-navbar ul a > .sf-sub-indicator { background-position: 0 -100px; }
+/* apply hovers to modern browsers */
+.sf-navbar ul a:focus > .sf-sub-indicator,
+.sf-navbar ul a:hover > .sf-sub-indicator,
+.sf-navbar ul a:active > .sf-sub-indicator,
+.sf-navbar ul li:hover > a > .sf-sub-indicator,
+.sf-navbar ul li.sfHover > a > .sf-sub-indicator {
+	background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/*** remove shadow on first submenu ***/
+.sf-navbar > li > ul {
+	background: transparent;
+	padding: 0;
+	-moz-border-radius-bottomleft: 0;
+	-moz-border-radius-topright: 0;
+	-webkit-border-top-right-radius: 0;
+	-webkit-border-bottom-left-radius: 0;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish-vertical.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish-vertical.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish-vertical.css	(revision 28599)
@@ -0,0 +1,23 @@
+/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/
+.sf-vertical, .sf-vertical li {
+	width:	10em;
+}
+/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */
+.sf-vertical li:hover ul,
+.sf-vertical li.sfHover ul {
+	left:	10em; /* match ul width */
+	top:	0;
+}
+
+/*** alter arrow directions ***/
+.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */
+.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/
+
+/* hover arrow direction for modern browsers*/
+.sf-vertical a:focus > .sf-sub-indicator,
+.sf-vertical a:hover > .sf-sub-indicator,
+.sf-vertical a:active > .sf-sub-indicator,
+.sf-vertical li:hover > a > .sf-sub-indicator,
+.sf-vertical li.sfHover > a > .sf-sub-indicator {
+	background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/css/superfish.css	(revision 28599)
@@ -0,0 +1,136 @@
+
+/*** ESSENTIAL STYLES ***/
+.sf-menu, .sf-menu * {
+	margin:			0;
+	padding:		0;
+	list-style:		none;
+}
+.sf-menu {
+	line-height:	1.0;
+}
+.sf-menu ul {
+	position:		absolute;
+	top:			-999em;
+	width:			10em; /* left offset of submenus need to match (see below) */
+}
+.sf-menu ul li {
+	width:			100%;
+}
+.sf-menu li:hover {
+	visibility:		inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+	float:			left;
+	position:		relative;
+}
+.sf-menu a {
+	display:		block;
+	position:		relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+	left:			0;
+	top:			2.5em; /* match top ul list item height */
+	z-index:		99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+	top:			-999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+	left:			10em; /* match ul width */
+	top:			0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+	top:			-999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+	left:			10em; /* match ul width */
+	top:			0;
+}
+
+/*** DEMO SKIN ***/
+.sf-menu {
+	float:			left;
+	margin-bottom:	1em;
+}
+.sf-menu a {
+	border-left:	1px solid #fff;
+	border-top:		1px solid #CFDEFF;
+	padding: 		.75em 1em;
+	text-decoration:none;
+}
+.sf-menu a, .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
+	color:			#13a;
+}
+.sf-menu li {
+	background:		#BDD2FF;
+}
+.sf-menu li li {
+	background:		#AABDE6;
+}
+.sf-menu li li li {
+	background:		#9AAEDB;
+}
+.sf-menu li:hover, .sf-menu li.sfHover,
+.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
+	background:		#CFDEFF;
+	outline:		0;
+}
+
+/*** arrows **/
+.sf-menu a.sf-with-ul {
+	padding-right: 	2.25em;
+	min-width:		1px; /* trigger IE7 hasLayout so spans position accurately */
+}
+.sf-sub-indicator {
+	position:		absolute;
+	display:		block;
+	right:			.75em;
+	top:			1.05em; /* IE6 only */
+	width:			10px;
+	height:			10px;
+	text-indent: 	-999em;
+	overflow:		hidden;
+	background:		url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
+}
+a > .sf-sub-indicator {  /* give all except IE6 the correct values */
+	top:			.8em;
+	background-position: 0 -100px; /* use translucent arrow for modern browsers*/
+}
+/* apply hovers to modern browsers */
+a:focus > .sf-sub-indicator,
+a:hover > .sf-sub-indicator,
+a:active > .sf-sub-indicator,
+li:hover > a > .sf-sub-indicator,
+li.sfHover > a > .sf-sub-indicator {
+	background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/* point right for anchors in subs */
+.sf-menu ul .sf-sub-indicator { background-position:  -10px 0; }
+.sf-menu ul a > .sf-sub-indicator { background-position:  0 0; }
+/* apply hovers to modern browsers */
+.sf-menu ul a:focus > .sf-sub-indicator,
+.sf-menu ul a:hover > .sf-sub-indicator,
+.sf-menu ul a:active > .sf-sub-indicator,
+.sf-menu ul li:hover > a > .sf-sub-indicator,
+.sf-menu ul li.sfHover > a > .sf-sub-indicator {
+	background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
+
+/*** shadows for all but IE6 ***/
+.sf-shadow ul {
+	background:	url('../images/shadow.png') no-repeat bottom right;
+	padding: 0 8px 9px 0;
+	-moz-border-radius-bottomleft: 17px;
+	-moz-border-radius-topright: 17px;
+	-webkit-border-top-right-radius: 17px;
+	-webkit-border-bottom-left-radius: 17px;
+}
+.sf-shadow ul.sf-shadow-off {
+	background: transparent;
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/example.html
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/example.html	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/example.html	(revision 28599)
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+	<head>
+		<title>A very basic Superfish menu example</title>
+		<meta http-equiv="content-type" content="text/html;charset=utf-8">
+		<link rel="stylesheet" type="text/css" href="css/superfish.css" media="screen">
+		<script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
+		<script type="text/javascript" src="js/hoverIntent.js"></script>
+		<script type="text/javascript" src="js/superfish.js"></script>
+		<script type="text/javascript">
+
+		// initialise plugins
+		jQuery(function(){
+			jQuery('ul.sf-menu').superfish();
+		});
+
+		</script>
+	</head>
+	<body>
+		<ul class="sf-menu">
+			<li class="current">
+				<a href="#a">menu item</a>
+				<ul>
+					<li>
+						<a href="#aa">menu item that is quite long</a>
+					</li>
+					<li class="current">
+						<a href="#ab">menu item</a>
+						<ul>
+							<li class="current"><a href="#">menu item</a></li>
+							<li><a href="#aba">menu item</a></li>
+							<li><a href="#abb">menu item</a></li>
+							<li><a href="#abc">menu item</a></li>
+							<li><a href="#abd">menu item</a></li>
+						</ul>
+					</li>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+						</ul>
+					</li>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+						</ul>
+					</li>
+				</ul>
+			</li>
+			<li>
+				<a href="#">menu item</a>
+			</li>
+			<li>
+				<a href="#">menu item</a>
+				<ul>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">short</a></li>
+							<li><a href="#">short</a></li>
+							<li><a href="#">short</a></li>
+							<li><a href="#">short</a></li>
+							<li><a href="#">short</a></li>
+						</ul>
+					</li>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+						</ul>
+					</li>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+						</ul>
+					</li>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+						</ul>
+					</li>
+					<li>
+						<a href="#">menu item</a>
+						<ul>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+							<li><a href="#">menu item</a></li>
+						</ul>
+					</li>
+				</ul>
+			</li>
+			<li>
+				<a href="#">menu item</a>
+			</li>	
+		</ul>
+	</body>
+</html>
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/hoverIntent.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/hoverIntent.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/hoverIntent.js	(revision 28599)
@@ -0,0 +1,84 @@
+(function($){
+	/* hoverIntent by Brian Cherne */
+	$.fn.hoverIntent = function(f,g) {
+		// default configuration options
+		var cfg = {
+			sensitivity: 7,
+			interval: 100,
+			timeout: 0
+		};
+		// override configuration options with user supplied object
+		cfg = $.extend(cfg, g ? { over: f, out: g } : f );
+
+		// instantiate variables
+		// cX, cY = current X and Y position of mouse, updated by mousemove event
+		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+		var cX, cY, pX, pY;
+
+		// A private function for getting mouse position
+		var track = function(ev) {
+			cX = ev.pageX;
+			cY = ev.pageY;
+		};
+
+		// A private function for comparing current and previous mouse position
+		var compare = function(ev,ob) {
+			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+			// compare mouse positions to see if they've crossed the threshold
+			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+				$(ob).unbind("mousemove",track);
+				// set hoverIntent state to true (so mouseOut can be called)
+				ob.hoverIntent_s = 1;
+				return cfg.over.apply(ob,[ev]);
+			} else {
+				// set previous coordinates for next time
+				pX = cX; pY = cY;
+				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+			}
+		};
+
+		// A private function for delaying the mouseOut function
+		var delay = function(ev,ob) {
+			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+			ob.hoverIntent_s = 0;
+			return cfg.out.apply(ob,[ev]);
+		};
+
+		// A private function for handling mouse 'hovering'
+		var handleHover = function(e) {
+			// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
+			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
+			while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
+			if ( p == this ) { return false; }
+
+			// copy objects to be passed into t (required for event object to be passed in IE)
+			var ev = jQuery.extend({},e);
+			var ob = this;
+
+			// cancel hoverIntent timer if it exists
+			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+			// else e.type == "onmouseover"
+			if (e.type == "mouseover") {
+				// set "previous" X and Y position based on initial entry point
+				pX = ev.pageX; pY = ev.pageY;
+				// update "current" X and Y position based on mousemove
+				$(ob).bind("mousemove",track);
+				// start polling interval (self-calling timeout) to compare mouse coordinates over time
+				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+			// else e.type == "onmouseout"
+			} else {
+				// unbind expensive mousemove event
+				$(ob).unbind("mousemove",track);
+				// if hoverIntent state is true, then call the mouseOut function after the specified delay
+				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+			}
+		};
+
+		// bind the function to the two event listeners
+		return this.mouseover(handleHover).mouseout(handleHover);
+	};
+	
+})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/jquery-1.2.6.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/jquery-1.2.6.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/jquery-1.2.6.min.js	(revision 28599)
@@ -0,0 +1,32 @@
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2008 John Resig (jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
+ * $Rev: 5685 $
+ */
+(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
+return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
+return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
+selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
+return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
+this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
+return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
+jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
+script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
+for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
+for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
+jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
+ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
+while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
+while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
+for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
+jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
+xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
+jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
+for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
+s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
+e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/jquery.bgiframe.min.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/jquery.bgiframe.min.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/jquery.bgiframe.min.js	(revision 28599)
@@ -0,0 +1,10 @@
+/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * $LastChangedDate: 2007-06-19 20:25:28 -0500 (Tue, 19 Jun 2007) $
+ * $Rev: 2111 $
+ *
+ * Version 2.1
+ */
+(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};if(!$.browser.version)$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1];})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/superfish.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/superfish.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/superfish.js	(revision 28599)
@@ -0,0 +1,121 @@
+
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * 	http://www.opensource.org/licenses/mit-license.php
+ * 	http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+	$.fn.superfish = function(op){
+
+		var sf = $.fn.superfish,
+			c = sf.c,
+			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
+			over = function(){
+				var $$ = $(this), menu = getMenu($$);
+				clearTimeout(menu.sfTimer);
+				$$.showSuperfishUl().siblings().hideSuperfishUl();
+			},
+			out = function(){
+				var $$ = $(this), menu = getMenu($$), o = sf.op;
+				clearTimeout(menu.sfTimer);
+				menu.sfTimer=setTimeout(function(){
+					o.retainPath=($.inArray($$[0],o.$path)>-1);
+					$$.hideSuperfishUl();
+					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+				},o.delay);	
+			},
+			getMenu = function($menu){
+				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+				sf.op = sf.o[menu.serial];
+				return menu;
+			},
+			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+			
+		return this.each(function() {
+			var s = this.serial = sf.o.length;
+			var o = $.extend({},sf.defaults,op);
+			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
+					.filter('li:has(ul)').removeClass(o.pathClass);
+			});
+			sf.o[s] = sf.op = o;
+			
+			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+				if (o.autoArrows) addArrow( $('>a:first-child',this) );
+			})
+			.not('.'+c.bcClass)
+				.hideSuperfishUl();
+			
+			var $a = $('a',this);
+			$a.each(function(i){
+				var $li = $a.eq(i).parents('li');
+				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+			});
+			o.onInit.call(this);
+			
+		}).each(function() {
+			var menuClasses = [c.menuClass];
+			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+			$(this).addClass(menuClasses.join(' '));
+		});
+	};
+
+	var sf = $.fn.superfish;
+	sf.o = [];
+	sf.op = {};
+	sf.IE7fix = function(){
+		var o = sf.op;
+		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+			this.toggleClass(sf.c.shadowClass+'-off');
+		};
+	sf.c = {
+		bcClass     : 'sf-breadcrumb',
+		menuClass   : 'sf-js-enabled',
+		anchorClass : 'sf-with-ul',
+		arrowClass  : 'sf-sub-indicator',
+		shadowClass : 'sf-shadow'
+	};
+	sf.defaults = {
+		hoverClass	: 'sfHover',
+		pathClass	: 'overideThisToUse',
+		pathLevels	: 1,
+		delay		: 800,
+		animation	: {opacity:'show'},
+		speed		: 'normal',
+		autoArrows	: true,
+		dropShadows : true,
+		disableHI	: false,		// true disables hoverIntent detection
+		onInit		: function(){}, // callback functions
+		onBeforeShow: function(){},
+		onShow		: function(){},
+		onHide		: function(){}
+	};
+	$.fn.extend({
+		hideSuperfishUl : function(){
+			var o = sf.op,
+				not = (o.retainPath===true) ? o.$path : '';
+			o.retainPath = false;
+			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+					.find('>ul').hide().css('visibility','hidden');
+			o.onHide.call($ul);
+			return this;
+		},
+		showSuperfishUl : function(){
+			var o = sf.op,
+				sh = sf.c.shadowClass+'-off',
+				$ul = this.addClass(o.hoverClass)
+					.find('>ul:hidden').css('visibility','visible');
+			sf.IE7fix.call($ul);
+			o.onBeforeShow.call($ul);
+			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+			return this;
+		}
+	});
+
+})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/supersubs.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/supersubs.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/superfish-1.4.8/js/supersubs.js	(revision 28599)
@@ -0,0 +1,90 @@
+
+/*
+ * Supersubs v0.2b - jQuery plugin
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * 	http://www.opensource.org/licenses/mit-license.php
+ * 	http://www.gnu.org/licenses/gpl.html
+ *
+ *
+ * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
+ * their longest list item children. If you use this, please expect bugs and report them
+ * to the jQuery Google Group with the word 'Superfish' in the subject line.
+ *
+ */
+
+;(function($){ // $ will refer to jQuery within this closure
+
+	$.fn.supersubs = function(options){
+		var opts = $.extend({}, $.fn.supersubs.defaults, options);
+		// return original object to support chaining
+		return this.each(function() {
+			// cache selections
+			var $$ = $(this);
+			// support metadata
+			var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
+			// get the font size of menu.
+			// .css('fontSize') returns various results cross-browser, so measure an em dash instead
+			var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
+				'padding' : 0,
+				'position' : 'absolute',
+				'top' : '-999em',
+				'width' : 'auto'
+			}).appendTo($$).width(); //clientWidth is faster, but was incorrect here
+			// remove em dash
+			$('#menu-fontsize').remove();
+			// cache all ul elements
+			$ULs = $$.find('ul');
+			// loop through each ul in menu
+			$ULs.each(function(i) {	
+				// cache this ul
+				var $ul = $ULs.eq(i);
+				// get all (li) children of this ul
+				var $LIs = $ul.children();
+				// get all anchor grand-children
+				var $As = $LIs.children('a');
+				// force content to one line and save current float property
+				var liFloat = $LIs.css('white-space','nowrap').css('float');
+				// remove width restrictions and floats so elements remain vertically stacked
+				var emWidth = $ul.add($LIs).add($As).css({
+					'float' : 'none',
+					'width'	: 'auto'
+				})
+				// this ul will now be shrink-wrapped to longest li due to position:absolute
+				// so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
+				.end().end()[0].clientWidth / fontsize;
+				// add more width to ensure lines don't turn over at certain sizes in various browsers
+				emWidth += o.extraWidth;
+				// restrict to at least minWidth and at most maxWidth
+				if (emWidth > o.maxWidth)		{ emWidth = o.maxWidth; }
+				else if (emWidth < o.minWidth)	{ emWidth = o.minWidth; }
+				emWidth += 'em';
+				// set ul to width in ems
+				$ul.css('width',emWidth);
+				// restore li floats to avoid IE bugs
+				// set li width to full width of this ul
+				// revert white-space to normal
+				$LIs.css({
+					'float' : liFloat,
+					'width' : '100%',
+					'white-space' : 'normal'
+				})
+				// update offset position of descendant ul to reflect new width of parent
+				.each(function(){
+					var $childUl = $('>ul',this);
+					var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
+					$childUl.css(offsetDirection,emWidth);
+				});
+			});
+			
+		});
+	};
+	// expose defaults
+	$.fn.supersubs.defaults = {
+		minWidth		: 9,		// requires em unit.
+		maxWidth		: 25,		// requires em unit.
+		extraWidth		: 0			// extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
+	};
+	
+})(jQuery); // plugin code ends
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/tabs.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/tabs.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/tabs.js	(revision 28599)
@@ -0,0 +1,283 @@
+/**
+ * @license 
+ * jQuery Tools 1.2.5 Tabs- The basics of UI design.
+ * 
+ * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
+ * 
+ * http://flowplayer.org/tools/tabs/
+ *
+ * Since: November 2008
+ * Date:    Wed Sep 22 06:02:10 2010 +0000 
+ */  
+(function($) {
+		
+	// static constructs
+	$.tools = $.tools || {version: '1.2.5'};
+	
+	$.tools.tabs = {
+		
+		conf: {
+			tabs: 'a',
+			current: 'current',
+			onBeforeClick: null,
+			onClick: null, 
+			effect: 'default',
+			initialIndex: 0,			
+			event: 'click',
+			rotate: false,
+			
+			// 1.2
+			history: false
+		},
+		
+		addEffect: function(name, fn) {
+			effects[name] = fn;
+		}
+		
+	};
+	
+	var effects = {
+		
+		// simple "toggle" effect
+		'default': function(i, done) { 
+			this.getPanes().hide().eq(i).show();
+			done.call();
+		}, 
+		
+		/*
+			configuration:
+				- fadeOutSpeed (positive value does "crossfading")
+				- fadeInSpeed
+		*/
+		fade: function(i, done) {		
+			
+			var conf = this.getConf(),            
+				 speed = conf.fadeOutSpeed,
+				 panes = this.getPanes();
+			
+			if (speed) {
+				panes.fadeOut(speed);	
+			} else {
+				panes.hide();	
+			}
+
+			panes.eq(i).fadeIn(conf.fadeInSpeed, done);	
+		},
+		
+		// for basic accordions
+		slide: function(i, done) {
+			this.getPanes().slideUp(200);
+			this.getPanes().eq(i).slideDown(400, done);			 
+		}, 
+
+		/**
+		 * AJAX effect
+		 */
+		ajax: function(i, done)  {			
+			this.getPanes().eq(0).load(this.getTabs().eq(i).attr("href"), done);	
+		}		
+	};   	
+	
+	var w;
+	
+	/**
+	 * Horizontal accordion
+	 * 
+	 * @deprecated will be replaced with a more robust implementation
+	 */
+	$.tools.tabs.addEffect("horizontal", function(i, done) {
+	
+		// store original width of a pane into memory
+		if (!w) { w = this.getPanes().eq(0).width(); }
+		
+		// set current pane's width to zero
+		this.getCurrentPane().animate({width: 0}, function() { $(this).hide(); });
+		
+		// grow opened pane to it's original width
+		this.getPanes().eq(i).animate({width: w}, function() { 
+			$(this).show();
+			done.call();
+		});
+		
+	});	
+
+	
+	function Tabs(root, paneSelector, conf) {
+		
+		var self = this, 
+			 trigger = root.add(this),
+			 tabs = root.find(conf.tabs),
+			 panes = paneSelector.jquery ? paneSelector : root.children(paneSelector),			 
+			 current;
+			 
+		
+		// make sure tabs and panes are found
+		if (!tabs.length)  { tabs = root.children(); }
+		if (!panes.length) { panes = root.parent().find(paneSelector); }
+		if (!panes.length) { panes = $(paneSelector); }
+		
+		
+		// public methods
+		$.extend(this, {				
+			click: function(i, e) {
+				
+				var tab = tabs.eq(i);												 
+				
+				if (typeof i == 'string' && i.replace("#", "")) {
+					tab = tabs.filter("[href*=" + i.replace("#", "") + "]");
+					i = Math.max(tabs.index(tab), 0);
+				}
+								
+				if (conf.rotate) {
+					var last = tabs.length -1; 
+					if (i < 0) { return self.click(last, e); }
+					if (i > last) { return self.click(0, e); }						
+				}
+				
+				if (!tab.length) {
+					if (current >= 0) { return self; }
+					i = conf.initialIndex;
+					tab = tabs.eq(i);
+				}				
+				
+				// current tab is being clicked
+				if (i === current) { return self; }
+				
+				// possibility to cancel click action				
+				e = e || $.Event();
+				e.type = "onBeforeClick";
+				trigger.trigger(e, [i]);				
+				if (e.isDefaultPrevented()) { return; }
+
+				// call the effect
+				effects[conf.effect].call(self, i, function() {
+
+					// onClick callback
+					e.type = "onClick";
+					trigger.trigger(e, [i]);					
+				});			
+				
+				// default behaviour
+				current = i;
+				tabs.removeClass(conf.current);	
+				tab.addClass(conf.current);				
+				
+				return self;
+			},
+			
+			getConf: function() {
+				return conf;	
+			},
+
+			getTabs: function() {
+				return tabs;	
+			},
+			
+			getPanes: function() {
+				return panes;	
+			},
+			
+			getCurrentPane: function() {
+				return panes.eq(current);	
+			},
+			
+			getCurrentTab: function() {
+				return tabs.eq(current);	
+			},
+			
+			getIndex: function() {
+				return current;	
+			}, 
+			
+			next: function() {
+				return self.click(current + 1);
+			},
+			
+			prev: function() {
+				return self.click(current - 1);	
+			},
+			
+			destroy: function() {
+				tabs.unbind(conf.event).removeClass(conf.current);
+				panes.find("a[href^=#]").unbind("click.T"); 
+				return self;
+			}
+		
+		});
+
+		// callbacks	
+		$.each("onBeforeClick,onClick".split(","), function(i, name) {
+				
+			// configuration
+			if ($.isFunction(conf[name])) {
+				$(self).bind(name, conf[name]); 
+			}
+
+			// API
+			self[name] = function(fn) {
+				if (fn) { $(self).bind(name, fn); }
+				return self;	
+			};
+		});
+	
+		
+		if (conf.history && $.fn.history) {
+			$.tools.history.init(tabs);
+			conf.event = 'history';
+		}	
+		
+		// setup click actions for each tab
+		tabs.each(function(i) { 				
+			$(this).bind(conf.event, function(e) {
+				self.click(i, e);
+				return e.preventDefault();
+			});			
+		});
+		
+		// cross tab anchor link
+		panes.find("a[href^=#]").bind("click.T", function(e) {
+			self.click($(this).attr("href"), e);		
+		}); 
+		
+		// open initial tab
+		if (location.hash && conf.tabs == "a" && root.find("[href=" +location.hash+ "]").length) {
+			self.click(location.hash);
+
+		} else {
+			if (conf.initialIndex === 0 || conf.initialIndex > 0) {
+				self.click(conf.initialIndex);
+			}
+		}				
+		
+	}
+	
+	
+	// jQuery plugin implementation
+	$.fn.tabs = function(paneSelector, conf) {
+		
+		// return existing instance
+		var el = this.data("tabs");
+		if (el) { 
+			el.destroy();	
+			this.removeData("tabs");
+		}
+
+		if ($.isFunction(conf)) {
+			conf = {onBeforeClick: conf};
+		}
+		
+		// setup conf
+		conf = $.extend({}, $.tools.tabs.conf, conf);		
+		
+		
+		this.each(function() {				
+			el = new Tabs($(this), paneSelector, conf);
+			$(this).data("tabs", el); 
+		});		
+		
+		return conf.api ? el: this;		
+	};		
+		
+}) (jQuery); 
+
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/index.css
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/index.css	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/index.css	(revision 28599)
@@ -0,0 +1,57 @@
+body {
+  background-color: #008D99;
+  color: white;
+  font: 15px/1.3 arial, sans-serif;
+  margin: 0 auto;
+  width: 480px;
+  padding: 30px;
+  text-align: left; }
+  
+h1 {
+  font-size: 240%;
+  margin-bottom: -.5em; }
+h2, p, ul, code {
+  margin-bottom: 1em; }
+h2 a {
+  color: #fff; }
+h3 {
+  font-size: 140%;
+  margin-bottom: .4em; }
+ul {
+  padding-left: 2em; }
+  ul li {
+    list-style-type: square; 
+    margin-left: 0;}
+a {
+  color: #8ADEE2; }
+code, .example {
+  padding: .5em;
+  display: block;
+  overflow-x: auto;}
+code {
+  margin-left: 1em;}
+code, .code, .example {
+  background-color: #0C717A;
+  color: #fff;
+  font-size: 85%;
+  font-family: courier, monospace; }
+  code a, .code a {
+    color: #fff; }
+.show-code {
+  display: block;
+  font-size: 75%;
+  margin: 1em 0;}
+.copyright {
+  font-family: verdana, sans-serif;
+  font-size: 75%;
+  margin-top: 8em; }
+  .copyright span {
+    color: #8ADEE2; }
+.download h4 {
+  font-size: 120%;
+  margin-top: -.5em;
+  color: #8ADEE2; }
+.twoot {
+  padding-top: 3em; }
+.query {
+  margin-bottom: 2em; }
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/index.html
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/index.html	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/index.html	(revision 28599)
@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="UTF-8" />
+  <title>Tweet! Put Twitter on your site with this simple, unobtrusive jQuery widget</title>
+  <link href="index.css" rel="stylesheet"/>
+  <link href="jquery.tweet.css" rel="stylesheet"/>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
+  <script src="jquery.tweet.js" charset="utf-8"></script>
+  <script type="text/javascript">
+    function randomString(length) {
+      var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
+      var str = '';
+      for (var i = 0; i < length; i++) {
+        str += chars[Math.floor(Math.random() * chars.length)];
+      }
+      return str;
+    }
+    var rnd = randomString(8);
+
+    jQuery(document).ready(function($) {
+      $(".rnd").replaceWith(rnd);
+
+
+      $(".example").hide().each(function(i,e){
+        $(e).before($('<a class="show-code" href="#">Show code &raquo;</a>').
+                      click(function(ev) {
+                        $(e).slideToggle();
+                        $(this).hide();
+                        ev.preventDefault();
+                      }));
+      });
+    });
+  </script>
+</head>
+<body>
+  <h1>Tweet!</h1>
+  <h2>put <a href="http://twitter.com">twitter</a> on your website with <em>tweet!</em>, an unobtrusive javascript plugin for jquery.</h2>
+
+  <p>Check out the script in action at <a href="http://seaofclouds.com">seaofclouds.com</a>, and see the following demos.</p>
+
+  <h3>Examples</h3>
+
+  <p>Displaying three tweets from the <a href="http://twitter.com/seaofclouds">seaofclouds twitter feed</a>:</p>
+  <pre class="example">
+    $(function(){
+      $(".tweet").tweet({
+        join_text: "auto",
+        username: "seaofclouds",
+        avatar_size: 48,
+        count: 3,
+        auto_join_text_default: "we said,",
+        auto_join_text_ed: "we",
+        auto_join_text_ing: "we were",
+        auto_join_text_reply: "we replied",
+        auto_join_text_url: "we were checking out",
+        loading_text: "loading tweets..."
+      });
+    });
+  </pre>
+  <div class='tweet query'></div>
+  <script type="text/javascript">
+    $(function(){ $(".example").each(function(i, e){ eval($(e).text()); }); });
+  </script>
+
+  <p>Displaying four tweets from the query "<a href="http://search.twitter.com/search?q=tweet.seaofclouds.com">tweet.seaofclouds.com</a>":</p>
+  <pre class="example">
+    $(function(){
+      $("#query").tweet({
+        avatar_size: 32,
+        count: 4,
+        query: "tweet.seaofclouds.com",
+        loading_text: "searching twitter..."
+      });
+    });
+  </pre>
+  <div id="query" class='query'></div>
+
+  <p>Displaying up to three links with the search query "<a href="http://search.twitter.com/search?q=from%3Aseaofclouds%20http">from:seaofclouds http</a>":</p>
+  <pre class="example">
+    $(function(){
+      $("#userandquery").tweet({
+        count: 3,
+        query: "from:seaofclouds http",
+        loading_text: "searching twitter..."
+      });
+    });
+  </pre>
+  <div id='userandquery' class="query"></div>
+
+  <p>Displaying four tweets from the two users "seaofclouds" and "laughingsquid", refreshing every 10 seconds:</p>
+  <pre class="example">
+    $(function(){
+      $("#fromtwo").tweet({
+        avatar_size: 32,
+        count: 4,
+        username: ["seaofclouds", "laughingsquid"],
+        loading_text: "searching twitter...",
+        refresh_interval: 10
+      });
+    });
+  </pre>
+  <div id='fromtwo' class="query"></div>
+
+  <p>Displaying tweets from users on the 'team' list of 'twitter':</p>
+  <pre class="example">
+    $(function(){
+      $("#list").tweet({
+        avatar_size: 32,
+        count: 4,
+        username: "twitter",
+        list: "team",
+        loading_text: "loading list..."
+      });
+    });
+  </pre>
+  <div id='list' class="query"></div>
+
+  <p>Displaying the user seaofclouds' favorite tweets:</p>
+  <pre class="example">
+    $(function(){
+      $("#favorites").tweet({
+        avatar_size: 32,
+        count: 3,
+        username: "seaofclouds",
+        favorites: true,
+        loading_text: "loading list..."
+      });
+    });
+  </pre>
+  <div id="favorites" class="query"></div>
+
+  <p>Fetch 20 tweets, but filter out @replies, and display only 3:</p>
+  <pre class="example">
+    $(function(){
+      $("#filter").tweet({
+        avatar_size: 32,
+        count: 3,
+        fetch: 20,
+        filter: function(t){ return ! /^@\w+/.test(t["tweet_raw_text"]); },
+        username: "seaofclouds",
+      });
+    });
+  </pre>
+  <div id='filter' class="query"></div>
+
+  <p>Customize the layout to eliminate the date stamps and avatars:</p>
+  <pre class="example">
+    $(function(){
+      $("#custom").tweet({
+        avatar_size: 32,
+        count: 4,
+        username: "seaofclouds",
+        template: function(i){return i["text"]}
+      });
+    });
+  </pre>
+  <div id='custom' class="query"></div>
+
+  <p>Adding a message when no tweets matching '<span class="rnd">somerandomstring</span>' are found:</p>
+  <pre class="example">
+    $(function(){
+      $("#empty").tweet({
+        avatar_size: 32,
+        count: 4,
+        query: rnd,
+        loading_text: "searching twitter..."
+      }).bind("empty", function() { $(this).append("No matching tweets found"); });
+    });
+  </pre>
+  <div id='empty' class="query"></div>
+
+  <h3>Features</h3>
+  <ul>
+    <li>small size and fast download time</li>
+    <li>will not slow down or pause your page while tweets are loading</li>
+    <li>display up to 100 tweets, as permitted by the twitter search api</li>
+    <li>display tweets from a twitter search, or from your own feed</li>
+    <li>optional verb tense matching, for human readable tweets</li>
+    <li>optionally display your avatar</li>
+    <li>optionally display tweets from multiple accounts!</li>
+    <li>display tweets from a list, or display a user's favorites</li>
+    <li>optional reloading after a specified delay</li>
+    <li>automatic linking of  @replies to users&#8217; twitter page</li>
+    <li>automatic linking of URLs</li>
+    <li>uses <a href="http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search">Twitter's Search API</a>, so you can display any tweets you like</li>
+    <li>Display up to 100 tweets that have been posted within 7 days (limit set by <a href="http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search">Twitter's Search API</a>)</li>
+    <li>automatic linking of <a href="http://search.twitter.com/search?q=&amp;tag=hashtags">#hashtags</a>, to a twitter search of all your tags</li>
+    <li>converts &lt;3 to a css styleable <span class='heart'>â¥</span> (we â¥ hearts)</li>
+    <li>makes awesome text, AWESOME text with AWESOMEIZER</li>
+    <li>customize the layout for tweets within the widget</li>
+    <li>apply custom filters, e.g. to remove @replies</li>
+    <li>define a custom sort order for tweets</li>
+    <li>customize the style with your own stylesheet or with other jquery plugins</li>
+    <li>compatible with most jquery versions, including jquery 1.2.6, 1.3.x, 1.4.x, and the latest 1.5</li>
+  </ul>
+
+  <p><strong>NOTE:</strong> Some users have reported that they <a href="http://help.twitter.com/forums/10713/entries/42646">do not show up in Twitter's search results</a>.</p>
+
+  <div class='download'>
+    <h3>Download</h3>
+    <p>
+      <a href="http://github.com/seaofclouds/tweet/zipball/master">
+        <img width="90" src="http://github.com/images/modules/download/zip.png"></a>
+      <a href="http://github.com/seaofclouds/tweet/tarball/master">
+        <img width="90" src="http://github.com/images/modules/download/tar.png"></a>
+    </p>
+  </div>
+
+  <h3>Usage</h3>
+  <p><strong>1.</strong> <a href="http://jquery.com/">Get JQuery</a>. In these examples, we use <a href="http://code.google.com/apis/ajaxlibs/">Google's AJAX Libraries API</a>.
+  <p><strong>2.</strong> include jQuery and jquery.tweet.js files in your template's <span class="code">&lt;head&gt;</span>.</p>
+  <code>
+    &lt;script language=&quot;javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;<br />
+    &lt;script language=&quot;javascript&quot; src=&quot;/tweet/jquery.tweet.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
+  </code>
+  <p><strong>3.</strong> Also in <span class="code">&lt;head&gt;</span>, Initialize tweet! on page load with your Username and other options</p>
+  <code>
+    &lt;script type=&apos;text/javascript&apos;&gt;<br />
+    &nbsp; &nbsp; $(document).ready(function(){<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; $(".tweet").tweet({<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; username: "seaofclouds",<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; join_text: "auto",<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avatar_size: 32,<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count: 3,<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auto_join_text_default: "we said,", <br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auto_join_text_ed: "we",<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auto_join_text_ing: "we were",<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auto_join_text_reply: "we replied to",<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; auto_join_text_url: "we were checking out",<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loading_text: "loading tweets..."<br />
+    &nbsp; &nbsp; &nbsp; &nbsp; });<br />
+    &nbsp; &nbsp; });<br />
+    &lt;/script&gt;
+  </code>
+  <p><strong>4.</strong> In <span class="code">&lt;body&gt;</span>, include a placeholder for your tweets. They'll get loaded in via JSON. How fancy!</p>
+  <code>
+    &lt;div class=&quot;tweet&quot;&gt;&lt;/div&gt;
+  </code>
+  <p><strong>5.</strong> Style with our stylesheet in <span class="code">&lt;head&gt;</span>, or modify as you like!</p>
+  <code>
+    &lt;link href=&quot;jquery.tweet.css&quot; media=&quot;all&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
+  </code>
+
+  <h3>Contribute</h3>
+  <p>Bring your code slinging skills to <a href="http://github.com/seaofclouds/tweet/">Github</a> and help us develop new features for tweet!</p>
+  <code>
+    git clone git://github.com/seaofclouds/tweet.git
+  </code>
+  <a href="http://github.com/seaofclouds/tweet"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png" alt="Fork me on GitHub" /></a>
+  <p>
+    <strong>Report bugs and request features</strong> in <a href="http://github.com/seaofclouds/tweet/issues">Github Issues</a>
+  </p>
+  <h3>Licensed under the MIT</h3>
+  <code>
+    <a href="http://www.opensource.org/licenses/mit-license.php">http://www.opensource.org/licenses/mit-license.php</a>
+  </code>
+  <div class='twoot'>
+    <h3>If you like Tweet, check out <a href="http://github.com/peterk/twoot/tree/master">Twoot</a>!</h3>
+    <p><a href="http://github.com/peterk/twoot/tree/master">Twoot</a> is a miniature Twitter client based on Tweet that allows you to post tweets and see what your friends are up to. Thanks, <a href="http://www.peterkrantz.com">Peter Krantz</a>!</p>
+  </div>
+  <p class='copyright'>something nifty from <a href="http://seaofclouds.com">seaofclouds</a><span class="trade">&trade;</span> | <a href="http://github.com/seaofclouds/tweet/">contribute</a></p>
+</body>
+</html>
Index: documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/jquery.tweet.js
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/jquery.tweet.js	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/js/tweet/jquery.tweet.js	(revision 28599)
@@ -0,0 +1,224 @@
+(function($) {
+
+  $.fn.tweet = function(o){
+    var s = $.extend({
+      username: ["ansimuz"],                // [string]   required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"]
+      list: null,                               // [string]   optional name of list belonging to username
+      favorites: false,                         // [boolean]  display the user's favorites instead of his tweets
+      avatar_size: null,                        // [integer]  height and width of avatar if displayed (48px max)
+      count: 3,                                 // [integer]  how many tweets to display?
+      fetch: null,                              // [integer]  how many tweets to fetch via the API (set this higher than 'count' if using the 'filter' option)
+      intro_text: null,                         // [string]   do you want text BEFORE your your tweets?
+      outro_text: null,                         // [string]   do you want text AFTER your tweets?
+      join_text:  null,                         // [string]   optional text in between date and tweet, try setting to "auto"
+      auto_join_text_default: "i said,",        // [string]   auto text for non verb: "i said" bullocks
+      auto_join_text_ed: "i",                   // [string]   auto text for past tense: "i" surfed
+      auto_join_text_ing: "i am",               // [string]   auto tense for present tense: "i was" surfing
+      auto_join_text_reply: "i replied to",     // [string]   auto tense for replies: "i replied to" @someone "with"
+      auto_join_text_url: "i was looking at",   // [string]   auto tense for urls: "i was looking at" http:...
+      loading_text: null,                       // [string]   optional loading text, displayed while tweets load
+      query: null,                              // [string]   optional search query
+      refresh_interval: null ,                  // [integer]  optional number of seconds after which to reload tweets
+      twitter_url: "twitter.com",               // [string]   custom twitter url, if any (apigee, etc.)
+      twitter_api_url: "api.twitter.com",       // [string]   custom twitter api url, if any (apigee, etc.)
+      twitter_search_url: "search.twitter.com", // [string]   custom twitter search url, if any (apigee, etc.)
+      template: function(info) {                // [function] template used to construct each tweet <li>
+        return info["avatar"] + info["time"] + info["join"] + info["text"];
+      },
+      comparator: function(tweet1, tweet2) {    // [function] comparator used to sort tweets (see Array.sort)
+        return tweet2["tweet_time"] - tweet1["tweet_time"];
+      },
+      filter: function(tweet) {                 // [function] whether or not to include a particular tweet (be sure to also set 'fetch')
+        return true;
+      }
+    }, o);
+
+    $.fn.extend({
+      linkUrl: function() {
+        var returning = [];
+        // See http://daringfireball.net/2010/07/improved_regex_for_matching_urls
+        var regexp = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?Â«Â»ââââ]))/gi;
+        this.each(function() {
+          returning.push(this.replace(regexp,
+                                      function(match) {
+                                        var url = (/^[a-z]+:/i).test(match) ? match : "http://"+match;
+                                        return "<a href=\""+url+"\">"+match+"</a>";
+                                      }));
+        });
+        return $(returning);
+      },
+      linkUser: function() {
+        var returning = [];
+        var regexp = /[\@]+([A-Za-z0-9-_]+)/gi;
+        this.each(function() {
+          returning.push(this.replace(regexp,"<a href=\"http://"+s.twitter_url+"/$1\">@$1</a>"));        });
+        return $(returning);
+      },
+      linkHash: function() {
+        var returning = [];
+        var regexp = /(?:^| )[\#]+([A-Za-z0-9-_]+)/gi;
+        this.each(function() {
+          returning.push(this.replace(regexp, ' <a href="http://'+s.twitter_search_url+'/search?q=&tag=$1&lang=all&from='+s.username.join("%2BOR%2B")+'">#$1</a>'));
+        });
+        return $(returning);
+      },
+      capAwesome: function() {
+        var returning = [];
+        this.each(function() {
+          returning.push(this.replace(/\b(awesome)\b/gi, '<span class="awesome">$1</span>'));
+        });
+        return $(returning);
+      },
+      capEpic: function() {
+        var returning = [];
+        this.each(function() {
+          returning.push(this.replace(/\b(epic)\b/gi, '<span class="epic">$1</span>'));
+        });
+        return $(returning);
+      },
+      makeHeart: function() {
+        var returning = [];
+        this.each(function() {
+          returning.push(this.replace(/(&lt;)+[3]/gi, "<tt class='heart'>&#x2665;</tt>"));
+        });
+        return $(returning);
+      }
+    });
+
+    function parse_date(date_str) {
+      // The non-search twitter APIs return inconsistently-formatted dates, which Date.parse
+      // cannot handle in IE. We therefore perform the following transformation:
+      // "Wed Apr 29 08:53:31 +0000 2009" => "Wed, Apr 29 2009 08:53:31 +0000"
+      return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
+    }
+
+    function relative_time(date) {
+      var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
+      var delta = parseInt((relative_to.getTime() - date) / 1000, 10);
+      var r = '';
+      if (delta < 60) {
+        r = delta + ' seconds ago';
+      } else if(delta < 120) {
+        r = 'a minute ago';
+      } else if(delta < (45*60)) {
+        r = (parseInt(delta / 60, 10)).toString() + ' minutes ago';
+      } else if(delta < (2*60*60)) {
+        r = 'an hour ago';
+      } else if(delta < (24*60*60)) {
+        r = '' + (parseInt(delta / 3600, 10)).toString() + ' hours ago';
+      } else if(delta < (48*60*60)) {
+        r = 'a day ago';
+      } else {
+        r = (parseInt(delta / 86400, 10)).toString() + ' days ago';
+      }
+      return 'about ' + r;
+    }
+
+    function build_url() {
+      var proto = ('https:' == document.location.protocol ? 'https:' : 'http:');
+      var count = (s.fetch === null) ? s.count : s.fetch;
+      if (s.list) {
+        return proto+"//"+s.twitter_api_url+"/1/"+s.username[0]+"/lists/"+s.list+"/statuses.json?per_page="+count+"&callback=?";
+      } else if (s.favorites) {
+        return proto+"//"+s.twitter_api_url+"/favorites/"+s.username[0]+".json?count="+s.count+"&callback=?";
+      } else if (s.query === null && s.username.length == 1) {
+        return proto+'//'+s.twitter_api_url+'/1/statuses/user_timeline.json?screen_name='+s.username[0]+'&count='+count+'&include_rts=1&callback=?';
+      } else {
+        var query = (s.query || 'from:'+s.username.join(' OR from:'));
+        return proto+'//'+s.twitter_search_url+'/search.json?&q='+encodeURIComponent(query)+'&rpp='+count+'&callback=?';
+      }
+    }
+
+    return this.each(function(i, widget){
+      var list = $('<ul class="tweet_list">').appendTo(widget);
+      var intro = '<p class="tweet_intro">'+s.intro_text+'</p>';
+      var outro = '<p class="tweet_outro">'+s.outro_text+'</p>';
+      var loading = $('<p class="loading">'+s.loading_text+'</p>');
+
+      if(typeof(s.username) == "string"){
+        s.username = [s.username];
+      }
+
+      if (s.loading_text) $(widget).append(loading);
+      $(widget).bind("load", function(){
+        $.getJSON(build_url(), function(data){
+          if (s.loading_text) loading.remove();
+          if (s.intro_text) list.before(intro);
+          list.empty();
+
+          var tweets = $.map(data.results || data, function(item){
+            var join_text = s.join_text;
+
+            // auto join text based on verb tense and content
+            if (s.join_text == "auto") {
+              if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) {
+                join_text = s.auto_join_text_reply;
+              } else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) {
+                join_text = s.auto_join_text_url;
+              } else if (item.text.match(/^((\w+ed)|just) .*/im)) {
+                join_text = s.auto_join_text_ed;
+              } else if (item.text.match(/^(\w*ing) .*/i)) {
+                join_text = s.auto_join_text_ing;
+              } else {
+                join_text = s.auto_join_text_default;
+              }
+            }
+
+            // Basic building blocks for constructing tweet <li> using a template
+            var screen_name = item.from_user || item.user.screen_name;
+            var source = item.source;
+            var user_url = "http://"+s.twitter_url+"/"+screen_name;
+            var avatar_size = s.avatar_size;
+            var avatar_url = item.profile_image_url || item.user.profile_image_url;
+            var tweet_url = "http://"+s.twitter_url+"/"+screen_name+"/statuses/"+item.id_str;
+            var tweet_time = parse_date(item.created_at);
+            var tweet_relative_time = relative_time(tweet_time);
+            var tweet_raw_text = item.text;
+            var tweet_text = $([tweet_raw_text]).linkUrl().linkUser().linkHash()[0];
+
+            // Default spans, and pre-formatted blocks for common layouts
+            var user = '<a class="tweet_user" href="'+user_url+'">'+screen_name+'</a>';
+            var join = ((s.join_text) ? ('<span class="tweet_join"> '+join_text+' </span>') : ' ');
+            var avatar = (avatar_size ?
+                          ('<a class="tweet_avatar" href="'+user_url+'"><img src="'+avatar_url+
+                           '" height="'+avatar_size+'" width="'+avatar_size+
+                           '" alt="'+screen_name+'\'s avatar" title="'+screen_name+'\'s avatar" border="0"/></a>') : '');
+            var time = '<span class="tweet_time"><a href="'+tweet_url+'" title="view tweet on twitter">'+tweet_relative_time+'</a></span>';
+            var text = '<span class="tweet_text">'+$([tweet_text]).makeHeart().capAwesome().capEpic()[0]+ '</span>';
+
+            return { item: item, // For advanced users who want to dig out other info
+                     screen_name: screen_name,
+                     user_url: user_url,
+                     avatar_size: avatar_size,
+                     avatar_url: avatar_url,
+                     source: source,
+                     tweet_url: tweet_url,
+                     tweet_time: tweet_time,
+                     tweet_relative_time: tweet_relative_time,
+                     tweet_raw_text: tweet_raw_text,
+                     tweet_text: tweet_text,
+                     user: user,
+                     join: join,
+                     avatar: avatar,
+                     time: time,
+                     text: text
+                   };
+          });
+
+          tweets = $.grep(tweets, s.filter).slice(0, s.count);
+          list.append($.map(tweets.sort(s.comparator),
+                            function(t) { return "<li>" + s.template(t) + "</li>"; }).join('')).
+              children('li:first').addClass('tweet_first').end().
+              children('li:odd').addClass('tweet_even').end().
+              children('li:even').addClass('tweet_odd');
+
+          if (s.outro_text) list.after(outro);
+          $(widget).trigger("loaded").trigger((tweets.length === 0 ? "empty" : "full"));
+          if (s.refresh_interval) {
+            window.setTimeout(function() { $(widget).trigger("load"); }, 1000 * s.refresh_interval);
+          }
+        });
+      }).trigger("load");
+    });
+  };
+})(jQuery);
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/comments.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/comments.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/comments.less	(revision 28599)
@@ -0,0 +1,351 @@
+@import "palette.less";
+
+/* COMMENTS ------------------------------------------------------------*/
+
+#comments-wrap{
+		padding-top: 40px;
+		margin-bottom: 60px;
+		
+		.heading{ 
+			margin-bottom: 10px;
+			padding-top: 0px;
+			padding-bottom: 10px;
+			border-top: 0px solid @fontColor;	
+			border-bottom: 5px solid @fontColor;	
+		}
+
+		a{ text-decoration: none; }
+		
+	
+	.commentlist{
+	
+		margin: 0 0 30px 0;
+		list-style-type: none;
+		font-size: 14px;
+	
+		
+		.comment-body {
+		  border-bottom: 1px  solid @fontColor;
+		  margin: 0 0 18px;
+		  padding: 25px 0px 20px 0px;
+		}
+		
+		> li:last-child{ 
+			border: none;
+			padding-top: 0px;
+		}
+		
+
+		
+		.v-card{ color: #ccc;}
+		
+		.comment .avatar {
+			float: right;
+			margin: 2px 15px 0 0;
+			height: 35px;
+			width: 35px;
+		}
+		
+		.respond-title-wrap,
+		.comment-title-wrap {
+			border-bottom: 1px solid #484848;
+			padding: 0 0 15px 0;
+			margin: 0 0 30px 0;
+		}
+		
+		#respond-title,
+		#comments,
+		.add-comment-link {
+			font-size: 15px;
+			color: #2c2d31;
+			font-weight: bold;
+		}
+		
+		.respond-caption { font-size: 11px; }
+		
+		.add-comment-link a {
+			font-size: 12px;
+			padding: 0 15px 0 0;
+		}
+		
+		
+		.comment-body{
+			position: relative;
+			margin-bottom: 20px;
+		}
+		
+		 ul li { padding: 0 0 0px 0; }
+		
+		 ul li:first-child .comment-border {
+			border-bottom: 1px #ccc solid;
+			margin: 18px 0 0 0;
+		 	height: 18px;
+			width: 430px;
+		}
+		
+		/* CHILDREN ------------------------------------------------------------*/
+		
+		.comment {
+		
+			p:last-child { margin: 0; }
+		
+			.children { 
+				list-style-type: none;
+				margin-left: 13%;
+			
+				.comment-body {  
+					border-bottom: 1px solid @fontColor;
+					padding-bottom: 20px;
+				}
+				
+				.comment-meta { 
+					margin-left: 0px;
+					margin-bottom: 18px;
+				}
+				
+				.comment .avatar {
+					height: 35px;
+					width: 35px;
+				}
+				
+				li{ background: url(../img/reply.png) no-repeat 10px 40px;  }
+				
+				.comment-body { 
+					 margin: 20px 0 0 0px; 
+				}
+			}
+		
+		}
+		
+		
+		.nocomments {
+			text-align: center;
+			padding: 20px;
+		}
+		
+		.comment-body ul { list-style-type: disc; }
+		
+		.comment-body ol { list-style-type: decimal; }
+		
+		/* REPLY ------------------------------------------------------------*/
+		
+		.reply {
+			position: absolute;
+			right: 1px;
+			top: 1px;
+		}
+		
+		.comment-reply-link-wrap {
+		
+			.comment-reply-link { 
+				color:  @linkColor;
+				font-size: 11px;
+				
+				&:hover{ color: @accentColor; }
+			}
+		}
+		
+		
+		/* META ------------------------------------------------------------*/
+		
+		.comment-meta { 
+			margin: 0 0 20px 0px; 
+			color:  @fontColor -2221;
+			font-size: 11px;
+			position: relative;
+		}
+		
+		.comment-author{ 
+			color: #444;
+			font-weight: bold;
+		}
+		
+		.comment-author cite {
+			font-weight: bold;
+			font-style: normal;
+			color: #2C2D31;
+			margin: 0;
+			padding: 0;
+			
+			a {
+				padding: 0 15px 0 0;
+				color: #2C2D31;
+			}
+		}
+		
+		
+		/* COMMENTS PAGINATION ------------------------------------------------------------*/
+		
+		.comments-pagination {
+			clear:both;
+			overflow: hidden;
+			padding:20px 0;
+			position:relative;
+			font-size:11px;
+			line-height:14px;
+			margin-bottom: 10px;
+			
+			span,
+			a {
+				display:block;
+				float:left;
+				margin: 2px 2px 2px 0;
+				padding:6px 9px 5px 9px;
+				text-decoration:none;
+				width:auto;
+				color:#fff;
+				background: #555;
+				
+				&:hover{
+					color:#fff;
+					background: #000000;
+				}
+			}
+			
+			.current{
+				padding:6px 9px 5px 9px;
+				background: #000000;
+				color:#fff;
+			}
+		}
+	}
+
+}
+
+
+
+/* FORMS ------------------------------------------------------------*/
+
+
+
+#respond{ 
+	margin: 25px 0 0px 0px;
+	
+	.heading{ 
+		margin-bottom: 41px;
+		padding-top: 0px;
+		padding-bottom: 10px;
+		border-top: 0px solid @fontColor;	
+		border-bottom: 5px solid @fontColor;	
+	}
+	
+	#cancel-comment-reply-link{
+		display: block;
+		float: right;
+		color:  @linkColor;
+		text-decoration: none;
+		background: none;
+		padding: 3px 10px;
+		font-family: Helvetica,  Arial, "sans-serif";
+		font-size: 12px;
+		
+		
+		&:hover{
+			text-decoration: underline;
+		}
+	}
+	
+}
+
+
+#commentform,
+#contactForm{
+	margin-bottom: 70px;
+
+		
+			
+	.comment-notes{ margin-bottom: 30px;}
+	.form-allowed-tags{
+		margin-bottom: 20px;
+		font-size: 14px;
+		color: @fontColor;
+	}
+	
+	input,
+	textarea{
+		padding: 10px 15px;
+		background: #f1f1f1;
+		color: #484848;
+		border: 1px  solid #ccc;
+		font-size: 14px;
+		font-family: Helvetica, Arial;
+		line-height: 1.5em;
+		overflow: auto;
+		
+		&:focus{
+			background: #fff;
+			-webkit-box-shadow: 0px 0px 3px rgba(251,228,113,.4);
+			-moz-box-shadow: 0px 0px 3px rgba(251,228,113,.4);
+			-o-box-shadow: 0px 0px 3px rgba(251,228,113,.4);
+			box-shadow: 0px 0px 3px rgba(251,228,113,.4);
+		}
+	}
+	
+	
+	input[type="text"],
+	input[type="password"]{
+		overflow: auto;
+		width: 50%;
+		margin-top: 10px;
+		margin-bottom: 10px;
+		overflow: hidden;
+	}
+	
+	textarea{
+		width: 93.1818%;
+		height: 230px;
+		margin-top: 10px;
+		margin-bottom: 10px;
+	}
+	
+	input[type="submit"],
+	input[type="button"]{
+	
+		width: auto;
+		color: #444;
+		font-size: 14px;
+		background: @fgColor;
+		color: @accentColor;
+		padding: 10px 15px;
+		.shadow();
+		.transition();
+		
+		cursor: pointer;
+		
+		&:hover{
+			
+			-webkit-transform: translate(0px , -5px);
+			-moz-transform: translate(0px , -5px);
+			-o-transform: translate(0px , -5px);
+			transform: translate(0px , -5px);
+		}
+	}
+	
+	
+	
+	input#submit{ margin-top: 7px; }
+	
+	label{
+		display: block;
+		margin-bottom: -10px;
+	}
+	
+	
+	
+	p{
+		margin-bottom: 10px;
+	}
+		
+	#error{
+		margin-left: 10px;
+	}
+	
+	
+	#sent-form-msg{
+		padding: 5px 10px;
+		margin-bottom: 40px;
+		background: rgba(0, 0, 0, 0.1);
+		color: #444;
+	}
+
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/elements.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/elements.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/elements.less	(revision 28599)
@@ -0,0 +1,485 @@
+@import "palette.less";
+
+.block-divider{
+	border-bottom: 1px solid @fontColorInner;
+	margin-bottom: 50px;
+	padding-bottom: 50px;
+}
+
+/* DROPCAP ------------------------------------------------------------*/
+
+.dropcap:first-letter{ 
+	font-size: 3.571em; 
+	line-height: 0.76em; 
+	padding: 0.2em 0.2em 0 0; 
+	float: left;
+	display: block;
+	color: @fontColorInner;
+}
+
+.dropcap.dark:first-letter{ 
+	display:block;
+	float:left;
+	font-size:30px;
+	line-height:40px;
+	margin:0 8px 0 0;
+	padding: 10px 10px;
+	background: @fontColorInner;
+	color: @fontLightColor;
+	border-radius: 5px;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+}
+
+/* INFOBOXES ------------------------------------------------------------*/
+
+
+.infobox-info,
+.infobox-warning,
+.infobox-success,
+.infobox-error{
+	border: 1px solid;
+	margin: 10px 0px;
+	padding:15px 10px 15px 50px;
+	background-repeat: no-repeat;
+	background-position: 10px center;
+	border-radius: 5px;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+}
+
+.infobox-info{
+	color: #00529B;
+	background-color: #BDE5F8;
+	background-image: url('../img/info-blue.png');
+}
+
+.infobox-warning{
+	color: #9F6000;
+	background-color: #FEEFB3;
+	background-image: url('../img/info-yellow.png');
+}
+
+.infobox-success{
+	color: #4F8A10;
+	background-color: #DFF2BF;
+	background-image: url('../img/info-green.png');
+}
+
+.infobox-error{
+	color: #D8000C;
+	background-color: #FFBABA;
+	background-image: url('../img/info-red.png');
+}
+
+/* LISTS ------------------------------------------------------------*/
+
+
+.lists-check ul,
+.lists-arrow ul,
+.lists-plus ul,
+.lists-star ul,
+.lists-heart ul{
+	margin-bottom: 30px;
+	margin-left: 20px;
+}
+
+
+.lists-check ul li{ 
+	list-style-image: url(../img/bullets/check.png);
+	line-height: 1.5em;
+}
+	
+.lists-arrow ul{ 
+	list-style-image: url(../img/bullets/arrow.png); 
+	line-height: 1.5em;
+}
+
+.lists-plus ul{ 
+	list-style-image: url(../img/bullets/plus.png); 
+	line-height: 1.5em;
+}
+
+.lists-star ul{ 
+	list-style-image: url(../img/bullets/star.png); 
+	line-height: 1.5em;
+}
+
+.lists-heart ul{ 
+	list-style-image: url(../img/bullets/heart.png); 
+	line-height: 1.5em;
+}
+
+/* PULLQUOTES ------------------------------------------------------------*/
+
+.pullquote-right,
+.pullquote-left {
+	border-left: #555555 2px solid;
+	float:right;
+	font-size:16px;
+	line-height:1.5em;
+	margin: 20px 0px 20px 20px;
+	width:33%;
+	font-style: italic;
+}
+
+.pullquote-left {
+	float:left;
+	margin: 20px 20px 20px 0px;
+	padding:0 0 0 20px;
+}
+
+.pullquote-right{
+	border-left: none;
+	border-right: #555555 2px solid;
+	padding:0 20px 0 0px;
+}
+
+/* HIGHLIGHT ------------------------------------------------------------*/
+
+.highlight{ background: #fbe471 }
+
+
+/* Link buttons ------------------------------------------------*/
+
+.theme-link-button{
+	display: inline-block;
+	padding: 10px;
+	background: @accentColor;
+	color: #f1d76e;
+} 
+
+.link-button {
+	display: inline-block;
+	background-color: @accentColor;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#fe8300), to(#c46500));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #fe8300, #c46500);
+	background-image: -moz-linear-gradient(top, #fe8300, #c46500);
+	background-image: -ms-linear-gradient(top, #fe8300, #c46500);
+	background-image: -o-linear-gradient(top, #fe8300, #c46500);
+	background-image: linear-gradient(top, #fe8300, #c46500);
+	border: 1px solid #c46500;
+	border-bottom: 1px solid #fe8300;
+	-webkit-border-radius: 3px;
+	-moz-border-radius: 3px;
+	-ms-border-radius: 3px;
+	-o-border-radius: 3px;
+	border-radius: 3px;
+	-webkit-box-shadow: inset 0 1px 0 0 #fe8300;
+	-moz-box-shadow: inset 0 1px 0 0 #fe8300;
+	-ms-box-shadow: inset 0 1px 0 0 #fe8300;
+	-o-box-shadow: inset 0 1px 0 0 #fe8300;
+	box-shadow: inset 0 1px 0 0 #fe8300;
+	color: #703a00;
+	font-weight: bold;
+	line-height: 1;
+	padding: 8px 10px;
+	text-align: center;
+	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+}
+
+.link-button:hover {
+	color: #703a00;
+	background-color: #ff9627;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#ff9627), to(#c46500));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #ff9627, #c46500);
+	background-image: -moz-linear-gradient(top, #ff9627, #c46500);
+	background-image: -ms-linear-gradient(top, #ff9627, #c46500);
+	background-image: -o-linear-gradient(top, #ff9627, #c46500);
+	background-image: linear-gradient(top, #ff9627, #c46500);
+}
+
+.link-button.fullwidth{
+	display: block;
+	width: 97%;
+	margin: 0 auto;
+}
+
+.list-buttons{
+	display: block;	
+}
+
+.list-buttons li{
+	display: block;
+	float: left;
+	margin-right: 5px;
+	margin-bottom: 20px;
+}
+
+/* Link buttons red ------------------------------------------------*/
+
+.link-button.red{
+	color: #530909;
+	background-color: #e4504c;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#e4504c), to(#a61b1b));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #e4504c, #a61b1b);
+	background-image: -moz-linear-gradient(top, #e4504c, #a61b1b);
+	background-image: -ms-linear-gradient(top, #e4504c, #a61b1b);
+	background-image: -o-linear-gradient(top, #e4504c, #a61b1b);
+	background-image: linear-gradient(top, #e4504c, #a61b1b);
+	border: 1px solid #6e0606;
+	border-bottom: 1px solid #6e0606;
+	-webkit-box-shadow: inset 0 1px 0 0 #f95c59;
+	-moz-box-shadow: inset 0 1px 0 0 #f95c59;
+	-ms-box-shadow: inset 0 1px 0 0 #f95c59;
+	-o-box-shadow: inset 0 1px 0 0 #f95c59;
+	box-shadow: inset 0 1px 0 0 #f95c59;
+}
+
+.link-button.red:hover {
+	color: #530909;
+	background-color: #89cc54;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#ff8380), to(#b40e0e));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #ff8380, #b40e0e);
+	background-image: -moz-linear-gradient(top, #ff8380, #b40e0e);
+	background-image: -ms-linear-gradient(top, #ff8380, #b40e0e);
+	background-image: -o-linear-gradient(top, #ff8380, #b40e0e);
+	background-image: linear-gradient(top, #ff8380, #b40e0e);
+}
+
+/* Link buttons green ------------------------------------------------*/
+
+.link-button.green{
+	color: #223613;
+	background-color: #7fbf4d;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#7fbf4d), to(#426825));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #7fbf4d, #426825);
+	background-image: -moz-linear-gradient(top, #7fbf4d, #426825);
+	background-image: -ms-linear-gradient(top, #7fbf4d, #426825);
+	background-image: -o-linear-gradient(top, #7fbf4d, #426825);
+	background-image: linear-gradient(top, #7fbf4d, #426825);
+	border: 1px solid #63a62f;
+	border-bottom: 1px solid #5b992b;
+	-webkit-box-shadow: inset 0 1px 0 0 #96ca6d;
+	-moz-box-shadow: inset 0 1px 0 0 #96ca6d;
+	-ms-box-shadow: inset 0 1px 0 0 #96ca6d;
+	-o-box-shadow: inset 0 1px 0 0 #96ca6d;
+	box-shadow: inset 0 1px 0 0 #96ca6d;
+}
+
+.link-button.green:hover {
+	color: #223613;
+	background-color: #89cc54;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#89cc54), to(#426825));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #89cc54, #426825);
+	background-image: -moz-linear-gradient(top, #89cc54, #426825);
+	background-image: -ms-linear-gradient(top, #89cc54, #426825);
+	background-image: -o-linear-gradient(top, #89cc54, #426825);
+	background-image: linear-gradient(top, #89cc54, #426825);
+}
+
+/* Link buttons blue ------------------------------------------------*/
+
+.link-button.blue{
+	color: #2c4358;
+	background-color: #97b2c9;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#97b2c9), to(#4e7da5));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #97b2c9, #4e7da5);
+	background-image: -moz-linear-gradient(top, #97b2c9, #4e7da5);
+	background-image: -ms-linear-gradient(top, #97b2c9, #4e7da5);
+	background-image: -o-linear-gradient(top, #97b2c9, #4e7da5);
+	background-image: linear-gradient(top, #97b2c9, #4e7da5);
+	border: 1px solid #b9d3e9;
+	border-bottom: 1px solid #2c4358;
+	-webkit-box-shadow: inset 0 1px 0 0 #b9d3e9;
+	-moz-box-shadow: inset 0 1px 0 0 #b9d3e9;
+	-ms-box-shadow: inset 0 1px 0 0 #b9d3e9;
+	-o-box-shadow: inset 0 1px 0 0 #b9d3e9;
+	box-shadow: inset 0 1px 0 0 #b9d3e9;
+}
+
+.link-button.blue:hover {
+	color: #2c4358;
+	background-color: #89cc54;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#89bde8), to(#3771a2));
+	/* Saf4+, Chrome */
+	background-image: -webkit-linear-gradient(top, #89bde8, #3771a2);
+	background-image: -moz-linear-gradient(top, #89bde8, #3771a2);
+	background-image: -ms-linear-gradient(top, #89bde8, #3771a2);
+	background-image: -o-linear-gradient(top, #89bde8, #3771a2);
+	background-image: linear-gradient(top, #89bde8, #3771a2);
+}
+
+/* ACCORDION -------------------------------------------------*/
+
+
+.accordion-trigger,
+.toggle-trigger{
+	line-height: 30px;
+	font-size: 14px;
+	border-top: 1px solid @fontColorInner + 33;
+	border-left: 1px solid @fontColorInner;
+	border-right: 1px solid @fontColorInner;
+	border-bottom: 1px solid @fontColorInner - 33;
+}
+
+
+.accordion-trigger{
+	text-decoration: none;
+	color: @fgColor;
+	font-weight: bold;
+	padding: 5px 10px;
+	cursor: pointer;
+	background: @fontColorInner;
+
+	
+	&.active{
+		border-bottom: 1px solid @fontColorInner;	
+	}
+	
+	&:hover{
+		background: @fontColorInner;
+	}
+}
+
+
+
+.accordion-container{
+	margin-bottom: 0px;
+	padding: 5px 10px;
+	border-bottom: 1px solid @fontColorInner;
+	border-right: 1px solid @fontColorInner;
+	border-left: 1px solid @fontColorInner;
+}
+
+/* TOGGLE -------------------------------------------------*/
+
+.toggle-trigger{
+	text-decoration: none;
+	color: @fgColor;
+	font-weight: bold;
+	cursor: pointer;
+	overflow:  hidden;
+	background-color:  @fontColorInner;
+	padding: 5px 5px 5px 10px;
+	i{
+		display: block;
+		float: left;
+		width: 31px;
+		height: 31px;
+		margin-right: 10px;
+		background: url(../img/toggle.png) no-repeat 0px 0px;	
+	}
+	
+	&.active{
+		border-bottom: 1px solid @fontColorInner;	
+		i{
+			background-position: 0px -31px;
+		}
+	}
+	
+	&:hover{
+		background-color: @fontColorInner;
+	}
+}
+
+
+.toggle-container{
+	margin-bottom: 0px;
+	padding: 5px 10px;
+	border-bottom: 1px solid @fontColorInner;
+	border-right: 1px solid @fontColorInner;
+	border-left: 1px solid @fontColorInner;
+}
+
+/* TABS -------------------------------------------------*/
+
+/* root element for tabs  */
+
+.tabs { 
+	list-style:none; 
+	margin:0 !important;
+	padding: 0px;	
+	height: 33px;
+}
+
+body.home .tabs { 
+	padding: 0px 30px;
+
+}
+
+/* single tab */
+ul.tabs li { 
+	display: block;
+	float:left;	 
+	text-indent:0;
+	padding:0;
+	margin: 2px 5px 0px 0px !important;
+	list-style-image: none !important; 
+	border-top: 1px solid @fontColorInner;
+	border-right: 1px solid @fontColorInner;
+	border-left: 1px solid @fontColorInner;
+}
+
+/* link inside the tab. uses a background image */
+ul.tabs a { 
+	display:block;
+	font-size:13px;
+	font-weight: bold;
+	height: 30px;  
+	line-height:30px;
+	text-align:center;	
+	text-decoration:none;
+	padding: 0px 0px 0px 10px;	
+	position:relative;
+	top:0px;
+}
+
+ul.tabs a span{ 
+	display:block;
+	height: 100%;
+	padding-right: 10px;
+}
+
+ul.tabs a{
+	text-decoration: none;
+	color: @fontColor;
+	background: @fgColor;
+}
+
+ul.tabs a:active {
+	outline:none;
+}
+
+/* when mouse enters the tab move the background image */
+
+
+ul.tabs li:hover a,
+ul.tabs a.current{ 
+	background: #f3f3f3;
+	color: #444;
+	border-bottom: 1px solid #f1f1f1;
+}
+
+/* active tab uses a class name "current". its highlight is also done by moving the background image. */
+ul.tabs a.current,
+ul.tabs a.current:hover,
+ul.tabs li.current a {	
+	cursor:default !important; 
+	color:#444 !important;
+	display: block;
+	text-decoration: none;
+}
+
+
+/* initially all panes are hidden */ 
+.panes .pane {
+	display:none;	
+}
+
+.panes>div {
+   display: none;
+   min-height: 200px;
+   border: 1px solid @fontColorInner;
+   padding: 15px;
+   background: #f1f1f1;
+}
+
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/lessframework.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/lessframework.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/lessframework.less	(revision 28599)
@@ -0,0 +1,470 @@
+/*	Less Framework 4
+	http://lessframework.com
+	by Joni Korpi
+	License: http://opensource.org/licenses/mit-license.php	*/
+
+
+/*	
+
+
+
+/*		Default Layout: 992px. 
+		Gutters: 24px.
+		Outer margins: 48px.
+		Leftover space for scrollbars @1024px: 32px.
+-------------------------------------------------------------------------------
+cols    1     2      3      4      5      6      7      8      9      10
+px      68    160    252    344    436    528    620    712    804    896    */
+
+
+@import "palette.less";
+
+
+
+/* Default General  ----------------------------------------------------*/ 
+
+.wrapper{
+	width: 940px;
+}
+
+/* Defaul tNav   ----------------------------------------------------*/ 
+
+#comboNav{ display: none; }
+#nav{ display: block; }
+
+	
+	
+
+/*		Tablet Layout: 768px.
+		Gutters: 24px.
+		Outer margins: 28px.
+		Inherits styles from: Default Layout.
+-----------------------------------------------------------------
+cols    1     2      3      4      5      6      7      8
+px      68    160    252    344    436    528    620    712    */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+	
+	/* TABLET GENERAL  ----------------------------------------------------*/ 
+	
+	
+	.wrapper{ width: 712px; }
+	
+
+	/* TABLET NAV  ----------------------------------------------------*/ 
+	
+	#nav{ display: block; }
+	#comboNav{ display: none; }
+	#nav{
+		
+		li{
+			word-spacing: -.1em;
+			font-size: 16px;
+		}
+	}
+	
+	/* TABLE ISOTOPE ----------------------------------------------------*/ 
+
+
+	.feature{
+		width: 732px; /* 712 + 20 gap */
+		li{
+			width: 223px;
+			.thumb{
+				width: 203px;
+				.date{
+					left: 101px - 30;
+				}
+			}
+		}
+	}
+	
+	/* TABLET BLOG ------------------------------------------------------------*/
+
+	#posts-list{
+		width: 420px;
+		
+		article{
+			padding: 15px;
+						
+			.tape{
+				left: 210px - 60;
+			}
+			
+			.excerpt{
+				.post-heading{
+					max-width: 330px;
+				}
+			}
+		}
+	}
+	
+	/* TABLET PORTFOLIO ----------------------------------------------------*/ 
+
+	.portfolio-content{
+		.project-content{
+			float: left;
+			width: 430px;
+		}
+		
+		.project-info{
+			width: 160px;
+		}
+	}
+
+	/* TABLET RELATED PROJECTS ------------------------------------------------------------*/
+
+	.related-projects{
+		.related-list{
+			li{
+				width: 224px;
+				text-align: center;
+				margin-right: 20px;
+				
+				.thumb{
+					background: @fgColor;
+					padding: 10px;
+					display: block;
+					line-height: 0em;
+					margin-bottom: 10px;.shadow();
+				}
+				
+				&:last-child{
+					margin-right: 0px;
+				}
+			}
+		}
+	}
+	
+	/* TABLET WIDGETS  ----------------------------------------------------*/ 
+
+	.widget-cols{
+		>li{
+			width: 163px;
+			float: left;
+			margin-right: 20px;
+		}
+	}
+
+	
+}
+
+
+
+/*		Mobile Layout: 320px.
+		Gutters: 24px.
+		Outer margins: 34px.
+		Inherits styles from: Default Layout.
+---------------------------------------------
+cols    1     2      3
+px      68    160    252    */
+
+@media only screen and (max-width: 767px) {
+
+	.wrapper{ width: 252px;  }
+	
+	
+	h1{ font-size: 36px; }
+	h2{ font-size: 30px; }
+	h3{ font-size: 24px; }
+	h4{ font-size: 18px; }
+	h5{ font-size: 14px; }
+	h6{ font-size: 14px; }
+	
+	/* MOBILE NAV  ----------------------------------------------------*/ 
+	
+	#nav{ display: none; }
+	#comboNav{ display: block; }
+	
+	/* MOBILE Logo ----------------------------------------------------*/ 
+	
+	#logo{
+		width: 256px;
+		img{
+			width: 100%;
+		}
+	}
+	
+	/* MOBILE SLIDER ----------------------------------------------------*/ 
+	
+	body .theme-default .nivo-directionNav a{
+		display: none;
+	}
+	
+	/* MOBILE HEALINE ----------------------------------------------------*/ 
+
+	.headline{
+		font-family: mensch;
+		font-size: 24px;
+		line-height: 1.3em;
+	}
+	
+	/* MOBILE ISOTOPE ----------------------------------------------------*/ 
+
+	
+	#filter-buttons{
+		font-size: 12px;
+		background: @fgColor;
+		height: auto;
+	}
+	
+	.feature{
+		width: 252px;
+		margin-left: 0px;
+		li{
+			width: 252px;
+			margin-left: 0px;
+			.thumb{
+				width: 232px;
+				.date{
+					left: 116px - 30;
+				}
+			}
+		}
+	}
+	
+	/* MOBILE COLUMNS ----------------------------------------------------*/ 
+	
+	.one-half,
+	.one-third,
+	.one-fourth{
+		width: auto;
+		margin-right: 0px;
+	}
+	
+	/* MOBILE BLOG ------------------------------------------------------------*/
+
+	#posts-list{
+		width: 252px;
+		
+		article{
+			padding: 15px;
+						
+			.tape{
+				left: 126px - 60;
+			}
+			
+			.feature-image{
+				.entry-date{
+					bottom: -66px;
+					right: auto;
+					left: 126px - 25 - 20;
+				}
+			}
+			
+			.excerpt{
+				margin-top: 90px;
+				.post-heading{
+					max-width: auto;
+					font-size: 24px;
+				}
+			}
+		}
+	}
+	
+	#main .page-navigation{
+		text-indent: -9000px;
+		div{
+			width: 25px;
+		}
+	}
+	
+	/* MOBILE SIDEBAR ----------------------------------------------------*/ 
+
+	#sidebar{
+		width: 260px; 
+	}
+
+
+	/* MOBILE PORTFOLIO ----------------------------------------------------*/ 
+
+	.portfolio-content{
+		.project-content{
+			float: left;
+			width: 192px;
+		}
+		
+		.project-info{
+			width: 160px;
+		}
+	}
+
+	/* MOBILE RELATED PROJECTS ------------------------------------------------------------*/
+
+	.related-projects{
+		.related-list{
+			li{
+				width: 252px;
+				margin-bottom: 30px;
+			}
+		}
+	}
+
+	
+	/* MOBILE WIDGETS  ----------------------------------------------------*/ 
+
+	.widget-cols{
+		>li{
+			width: 252px;
+			float: left;
+			margin-right: 20px;
+			border-bottom: 1px solid @fgColor;
+			padding-bottom: 30px;
+			margin-bottom: 30px;
+			&:last-child{
+				border-bottom: none;
+			}
+		}
+	}
+	
+	/* MOBILE Social ----------------------------------------------------*/ 
+	
+	footer{
+		#social-bar{
+			margin: 20px 0px 30px 0px;
+			background: none;
+			height: 46px;
+			li{
+				margin-bottom: 5px;
+			}
+			.left-corner,
+			.right-corner{
+				display: none;
+			}
+		}
+		
+		
+	}
+}
+
+
+/*		Wide Mobile Layout: 480px.
+		Gutters: 24px.
+		Outer margins: 22px.
+		Inherits styles from: Default Layout, Mobile Layout.
+------------------------------------------------------------
+cols    1     2      3      4      5
+px      68    160    252    344    436    */
+
+@media only screen and (min-width: 480px) and (max-width: 767px) {
+
+	@widemobile-w: 436px;
+	
+	.wrapper{ width: @widemobile-w;  }
+	
+	
+	/* WIDE MOBILE Logo ----------------------------------------------------*/ 
+	
+	#logo{
+		width: 436px;
+		img{
+			width: 100%;
+		}
+	}
+	
+	/* WIDE MOBILE NAV  ----------------------------------------------------*/ 
+	
+	#nav{ display: none; }
+	#comboNav{ display: block; }
+	
+	/* WIDE MOBILE HEALINE ----------------------------------------------------*/ 
+
+	.headline{
+		font-family: mensch;
+		font-size: 36px;
+		line-height: 1.3em;
+	}
+	
+	/* WIDE MOBILE ISOTOPE ----------------------------------------------------*/ 
+
+	.feature{
+		width: 436px;
+		margin-left: 0px;
+		li{
+			width: 436px;
+			margin-left: 0px;
+			.thumb{
+				width: 416px;
+				.date{
+					left: 208px - 30;
+				}
+			}
+		}
+	}
+	
+	/* WIDE MOBILE BLOG ------------------------------------------------------------*/
+
+	#posts-list{
+		width: 436px;
+		
+		article{
+			padding: 15px;
+						
+			.tape{
+				left: 216px - 60;
+			}
+			
+			.feature-image{
+				.entry-date{
+					bottom: -66px;
+					right: auto;
+					left: 216px - 25 - 20;
+				}
+			}
+			
+			.excerpt{
+				margin-top: 90px;
+				.post-heading{
+					max-width: auto;
+					font-size: 24px;
+				}
+			}
+		}
+	}
+	
+	
+	/* WIDE MOBILE SIDEBAR ----------------------------------------------------*/ 
+
+	#sidebar{
+		width: 436px; 
+	}
+
+	/* WIDE MOBILE PORTFOLIO ----------------------------------------------------*/ 
+
+	.portfolio-content{
+		.project-content{
+			float: left;
+			width: 376px;
+		}
+		
+		.project-info{
+			width: 346px;
+		}
+	}
+
+	/* WIDE MOBILE RELATED PROJECTS ------------------------------------------------------------*/
+
+	.related-projects{
+		.related-list{
+			li{
+				width: 436px;
+				margin-bottom: 30px;
+			}
+		}
+	}
+	
+	/* WIDE MOBILE WIDGETS  ----------------------------------------------------*/ 
+
+	.widget-cols{
+		>li{
+			width: 436px;
+		}
+	}
+}
+
+
+
+
+
+
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/nivo-slider.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/nivo-slider.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/nivo-slider.less	(revision 28599)
@@ -0,0 +1,219 @@
+
+@import "palette.less";
+
+/* SLIDER --------------------------------------------------------- */
+
+
+
+
+/*
+ * jQuery Nivo Slider v3.0
+ * http://nivo.dev7studios.com
+ *
+ * Copyright 2012, Dev7studios
+ * Free to use and abuse under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+ 
+/* The Nivo Slider styles */
+.nivoSlider {
+	position:relative;
+	width:100%;
+	height:auto;
+	overflow: hidden;
+
+}
+.nivoSlider img {
+	position:absolute;
+	top:0px;
+	left:0px;
+}
+.nivo-main-image {
+	display: block !important;
+	position: relative !important; 
+	width: 100% !important;
+}
+
+/* If an image is wrapped in a link */
+.nivoSlider a.nivo-imageLink {
+	position:absolute;
+	top:0px;
+	left:0px;
+	width:100%;
+	height:100%;
+	border:0;
+	padding:0;
+	margin:0;
+	z-index:6;
+	display:none;
+}
+/* The slices and boxes in the Slider */
+.nivo-slice {
+	display:block;
+	position:absolute;
+	z-index:5;
+	height:100%;
+	top:0;
+}
+.nivo-box {
+	display:block;
+	position:absolute;
+	z-index:5;
+	overflow:hidden;
+}
+.nivo-box img { display:block; }
+
+/* Caption styles */
+.nivo-caption {
+	position:absolute;
+	left:0px;
+	bottom:0px;
+	background: @fontLightColor;
+	color: @fontColorInner;
+	width:100%;
+	z-index:8;
+	padding: 5px 10px;
+	opacity: 1;
+	overflow: hidden;
+	display: none;
+	-moz-opacity: 0.8;
+	filter:alpha(opacity=8);
+	-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
+	-moz-box-sizing: border-box;    /* Firefox, other Gecko */
+	box-sizing: border-box;         /* Opera/IE 8+ */
+}
+.nivo-caption p {
+	padding:5px;
+	margin:0;
+}
+.nivo-caption a {
+	display:inline !important;
+}
+.nivo-html-caption {
+    display:none;
+}
+/* Direction nav styles (e.g. Next & Prev) */
+.nivo-directionNav a {
+	position:absolute;
+	top:45%;
+	z-index:9;
+	cursor:pointer;
+}
+.nivo-prevNav {
+	left:0px;
+}
+.nivo-nextNav {
+	right:0px;
+}
+/* Control nav styles (e.g. 1,2,3...) */
+.nivo-controlNav {
+	text-align:center;
+	padding: 15px 0;
+}
+.nivo-controlNav a {
+	cursor:pointer;
+}
+.nivo-controlNav a.active {
+	font-weight:bold;
+}
+
+
+
+/*
+Skin Name: Nivo Slider Default Theme
+Skin URI: http://nivo.dev7studios.com
+Skin Type: flexible
+Description: The default skin for the Nivo Slider.
+Version: 1.2
+Author: Gilbert Pellegrom
+Author URI: http://dev7studios.com
+*/
+
+
+.theme-default{
+	padding: 10px;
+	background: @fgColor;
+	margin-bottom:20px;
+}
+
+.theme-default.theme-home{
+	margin-bottom:20px;
+	.shadow();
+}
+
+.theme-default .nivoSlider {
+	position:relative;
+	background: @fgColor url(../img/loading.gif) no-repeat 50% 50%;
+   
+}
+.theme-default .nivoSlider img {
+	position:absolute;
+	top:0px;
+	left:0px;
+	display:none;
+}
+.theme-default .nivoSlider a {
+	border:0;
+	display:block;
+}
+
+.theme-default .nivo-controlNav {
+	text-align: left;
+	padding: 10px 0;
+}
+.theme-default .nivo-controlNav a {
+	display:inline-block;
+	width:11px;
+	height:11px;
+	background: @accentColor + 70;
+	text-indent:-9999px;
+	border:0;
+	margin: 0 2px;
+	.border-radius(11px, 11px,11px,11px);
+}
+.theme-default .nivo-controlNav a.active {
+	background: @accentColor;
+}
+
+.theme-default .nivo-directionNav a {
+	display:block;
+	width:38px;
+	height:64px;
+	background:url(../img/arrows.png) no-repeat;
+	text-indent:-9999px;
+	border:0;
+}
+.theme-default a.nivo-nextNav {
+	background-position:0px -64px;
+	right:0px;
+}
+.theme-default a.nivo-prevNav {
+	left:0px;
+}
+
+.theme-default .nivo-caption {
+    font-family: Helvetica, Arial, sans-serif;
+}
+.theme-default .nivo-caption a {
+    color:@accentColor;
+    border-bottom:1px dotted @accentColor;
+}
+.theme-default .nivo-caption a:hover {
+	color:@accentColor;
+}
+
+.theme-default .nivo-controlNav.nivo-thumbs-enabled {
+	width: 100%;
+}
+.theme-default .nivo-controlNav.nivo-thumbs-enabled a {
+	width: auto;
+	height: auto;
+	background: none;
+	margin-bottom: 5px;
+}
+.theme-default .nivo-controlNav.nivo-thumbs-enabled img {
+	display: block;
+	width: 120px;
+	height: auto;
+}
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/palette.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/palette.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/palette.less	(revision 28599)
@@ -0,0 +1,54 @@
+/* Vars ----------------------------------------------------*/ 
+
+@fontColor: #444444;
+@fontColorInner: #585246;
+@fontLightColor: #f3e4c8;
+@headingColor: #444444;
+
+
+@linkColor: #c95039;
+
+
+@accentColor: #CB5432;
+@fgColor: #f3e4c8;
+@bgColor: #f1ede8;
+@headerColor: #2d2d2d;
+
+
+
+
+/* Mixins ----------------------------------------------------*/ 
+
+.box-shadow-full (@x: 0, @y: 5px, @blur: 5px, @spread: -5px, @color: #000) {
+   -moz-box-shadow: @x @y @blur @spread @color;
+   -webkit-box-shadow: @x @y @blur @spread @color;
+   box-shadow: @x @y @blur @spread @color;
+}
+
+.box-shadow (@opa: 0.2) {
+	-webkit-box-shadow: 0px 0px 2px rgba(0,0,0,@opa); 
+	-moz-box-shadow: 0px 0px 2px rgba(0,0,0,@opa); 
+	-o-box-shadow: 0px 0px 2px rgba(0,0,0,@opa);
+	box-shadow: 0px 0px 2px rgba(0,0,0,@opa);
+}
+
+.transition(){
+	-webkit-transition: all 0.3s ease;
+	-moz-transition: all 0.3s ease;
+	-o-transition: all 0.3s ease;
+	transition: all 0.3s ease;
+}
+
+.shadow(){
+	box-shadow: 3px 3px 0 0 rgba(0,0,0,0.1);
+}
+
+.border-radius(@t:40, @r:40px, @b:40px, @l:40px){
+	-moz-border-radius: @t @r @b @l;
+    -webkit-border-radius: @t @r @b @l;
+    border-radius: @t @r @b @l;
+}
+
+.text-shadow(){
+	text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3);
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/style.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/style.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/style.less	(revision 28599)
@@ -0,0 +1,823 @@
+/*
+* Folder v1.0
+*
+*/
+
+
+@import "palette.less";
+
+
+
+/* IMPORT ------------------------------------------------------------*/
+
+@import url('reset.css');
+@import url('widgets.css');
+@import url('elements.css');
+@import url('comments.css');
+
+/* aditional */
+@import url('../js/poshytip-1.1/src/tip-yellow/tip-yellow.css');
+@import url('isotope.css');
+
+/* Fonts ----------------------------------------------------*/ 
+
+
+/* Here you go ie */
+@font-face {
+    font-family: 'mensch';
+    font-style: normal;
+    font-weight: normal;
+    src: url('../fonts/mensch-webfont.eot');
+}
+
+/* For real web browsers */
+@font-face {
+    font-family: 'mensch';
+    font-style: normal;
+    font-weight: normal;
+    src: url('../fonts/mensch-webfont.ttf');
+}
+
+/* GENERAL ------------------------------------------------------------*/
+
+
+
+.cf:after,
+.cf:before {
+	content:"";
+    display:table;
+}   
+    
+.cf:after {
+	clear:both;
+}
+
+.cf {
+    zoom:1;
+}
+
+.wrapper{
+	margin: 0 auto; 
+	width: 940px;
+	position: relative;
+}
+
+body{
+	font-family: Helvetica, Arial, sans-serif;
+	font-size: 16px;
+	line-height: 1.5em;
+	background: #95c9c3 url(../img/grunge.png) repeat-x center 150px;
+	
+	a{
+		text-decoration: none;
+		.transition();
+	}
+	
+	
+	
+	p{
+		margin-bottom: 21px;
+	}
+
+}
+
+
+#main h1,
+#main h2,
+#main h3,
+#main h4,
+#main h5,
+#main h6 { 
+	font-family: mensch;
+	line-height: 1.3em;
+}
+
+h1{ font-size: 48px; }
+h2{ font-size: 36px; }
+h3{ font-size: 30px; }
+h4{ font-size: 24px; }
+h5{ font-size: 18px; }
+h6{ font-size: 14px; }
+
+
+/* HEADER ----------------------------------------------------*/ 
+
+header{
+	background: url(../img/header.png) ;
+	min-height: 150px;
+	
+
+	
+	#logo{
+		&:hover{ opacity: 0.8;}
+		img{
+			display: block;
+			margin: 30px auto;
+		}
+	}
+
+}
+
+
+
+
+
+/* NAVIGATION ------------------------------------------------------------*/
+
+nav{
+
+	height: 68px;
+	float: left;
+	width: 100%;
+	margin-top: 0px;
+	position: relative;
+	background: url(../img/ribbon.png) no-repeat top center;
+}
+
+#nav{
+	clear: left;
+	display: block;
+	float: right;
+	position: relative;
+	right: 50%;
+	text-align: center;
+	
+	>li{
+		display: block;
+		float: left;
+		position: relative;
+		left: 50%;
+		font-family: mensch;
+		word-spacing: -.1em;
+		font-size: 20px;
+		
+		&.current-menu-item,
+		&.current_page_item {
+			i{ display: block; }
+		}
+	
+		a{
+			display: block;
+			padding: 20px 10px 0px 10px;
+			color: @fontLightColor;
+			.text-shadow();
+			
+			&:hover{
+				i{ display: block; }
+			}
+			
+			i{
+				display: none;
+				width: 16px;
+				height: 16px;
+				position: absolute;
+				left: 50%;
+				top: -4px;
+				
+				b{
+					position: absolute;
+					display: block;
+					background:  url(../img/current.png) no-repeat 0px 0px;
+					width: 16px;
+					height: 16px;
+					left: -8px;
+				}
+			}
+		
+		
+		}
+		
+		
+		/* sub navigation -----------------------------------------------------*/
+		
+		
+		
+		ul{
+			
+			font-size: 14px;
+			font-family: Tahoma;
+			text-align: left;
+			margin-top: 19px;
+			.shadow();
+			
+			li{
+				
+				a{
+					padding: 15px;
+					background: #963724;
+					&:hover{
+						background: #a03a26;
+					}
+				}
+				
+				border-top: 1px solid #a03a26;
+				border-bottom: 1px solid #812f1e;
+				
+				&:last-child{
+					border-bottom: none;
+				}
+			}	
+		}
+	}
+}
+
+
+/* COMBO NAVIGATION ------------------------------------------------------------*/
+
+#comboNav{
+	width: 100%;
+	margin-top: 20px;
+	margin-bottom: 30px;
+	float: left;
+}
+
+/* MAIN ----------------------------------------------------*/ 
+
+#main{
+	
+	.wrapper{
+		margin-top: 30px + 30;
+		margin-bottom: 50px;
+		min-height: 500px;
+		color: #444;
+		font-size: 16px;
+		line-height: 1.5em;
+	}
+}
+
+
+/* HEALINE ----------------------------------------------------*/ 
+
+.headline{
+	color: @accentColor;
+	text-align: center;
+	font-family: mensch;
+	font-size: 48px;
+	line-height: 1.3em;
+	word-spacing: -.1em;
+	text-shadow: 3px 3px 0 rgba(255, 255, 255, .5);
+	margin-bottom: 20px;
+}
+
+/* FEATURE ----------------------------------------------------*/ 
+
+.feature{
+	
+	width: 960px;
+	margin-left: -20px;
+	
+	li{
+		position: relative;
+		background: @fgColor;
+		width: 300px;
+		margin-bottom: 50px;
+		margin-left: 20px;
+		
+		.shadow();
+		
+		.thumb{
+			display: block;
+			margin: 10px;
+			width: 280px;
+			img{
+				max-width: 100%;
+			}
+		}
+		.caption{
+			padding: 10px 10px 20px 10px;
+			text-align: center;
+		}
+		a{ color: @accentColor }
+		.thumb{
+			position: relative;
+		
+			.date{
+				position: absolute;
+				bottom: -25px;
+				left: 140px - 30;
+				display: block;
+				.border-radius(40px,40px,40px,40px);
+				height: 50px;
+				width: 60px;
+				background: @fgColor;
+				float: left;
+				font-family: mensch;
+				padding-top: 10px;
+				span{
+					display: block;
+					text-align: center;
+					font-size: 20px;
+					line-height: 20px;
+				}
+			}
+		}
+	}
+}
+
+
+/* PAGE CONTENT ----------------------------------------------------*/ 
+
+.page-content{
+	position: relative;
+	background: @fgColor;
+	color: @fontColorInner;
+	padding: 50px 30px 60px 30px;
+	.shadow();
+	
+	.heading{
+		border-bottom: 5px solid @fontColorInner;
+		margin-bottom: 30px;
+		padding-bottom: 10px;
+	}
+	
+	.c-1,
+	.c-2,
+	.c-3,
+	.c-4{
+		position: absolute;
+		width: 48px;
+		height: 50px;
+	}
+	
+	.c-1{
+		top: 0px;
+		left: 0px;
+		background: url(../img/corner-1.png) no-repeat top left;
+	}
+	
+	.c-2{
+		top: 0px;
+		right: 0px;
+		background: url(../img/corner-2.png) no-repeat top left;
+	}
+	
+	.c-3{
+		bottom: 0px;
+		left: 0px;
+		background: url(../img/corner-3.png) no-repeat top left;
+	}
+	
+	.c-4{
+		bottom: 0px;
+		right: 0px;
+		background: url(../img/corner-4.png) no-repeat top left;
+	}
+}
+
+
+/* CONTACT ------------------------------------------------------------*/
+
+
+#map_canvas{
+	display: block;
+	height: 300px;
+	width: 100%;
+	margin-bottom: 20px;	
+}
+
+
+/* PORTFOLIO ----------------------------------------------------*/ 
+
+.portfolio-content{
+	margin-bottom: 40px;
+	
+	
+	.project-content{
+		float: left;
+		width: 660px;
+	}
+	
+	.project-info{
+		float: right;
+		width: 160px;
+		font-size: 14px;
+		padding-left: 30px;
+		border-left: 1px solid @fontColorInner;
+		
+		p{
+			margin-bottom: 10px;
+		}
+		
+		strong{
+			font-weight: bold;
+			display: block;
+		}
+		
+		a{
+			color: @accentColor;
+		}
+	}
+}
+
+/* RELATED PROJECTS ------------------------------------------------------------*/
+
+.related-projects{
+	margin-bottom: 80px;
+	.related-heading{
+		text-align: center;
+		margin-bottom: 10px;
+	}
+	
+	a{
+		color: @fontColor;
+	}
+	
+	.related-list{
+		li{
+			float: left;
+			width: 300px;
+			text-align: center;
+			margin-right: 20px;
+			
+			.thumb{
+				background: @fgColor;
+				padding: 10px;
+				display: block;
+				line-height: 0em;
+				margin-bottom: 10px;.shadow();
+				img{
+					max-width: 100%;
+				}
+			}
+			
+			&:last-child{
+				margin-right: 0px;
+			}
+		}
+	}
+}
+
+
+/* ENTRY CONTENT ------------------------------------------------------------*/
+
+.entry-content{
+	a{
+		color: @accentColor;
+	}
+	
+	strong{
+		font-weight: bold;
+	}
+	
+	ul,ol{
+		margin-left: 20px;
+	}
+	
+	ul{
+		list-style: disc;
+	}
+	
+	ol{
+		list-style: decimal;
+	}
+}
+
+/* BLOG ------------------------------------------------------------*/
+
+#posts-list{
+	position: relative;
+	width: 620px;
+	float: left;
+	
+	article{
+		position: relative;
+		margin-bottom: 50px;
+		padding: 30px;
+		background: @fgColor;
+		.shadow();
+		
+		.tape{
+			position: absolute;
+			top: -15px;
+			left: 310px - 60;
+			display: block;
+			width: 122px;
+			height: 35px;
+			background: url(../img/tape.png) no-repeat top left;
+		}
+		
+		.feature-image{
+			position: relative;
+			line-height: 0em;
+			
+			
+			img{
+				max-width: 100%;
+			}
+			
+			.entry-date{
+				position: absolute;
+				bottom: -66px;
+				right: 0px;
+				width: 51px;
+				height: 66px;
+				background: url(../img/date.png) no-repeat top left;
+				font-family: mensch;
+				font-size: 20px;
+				line-height: 1.1em;
+				text-align: center;
+				color: @fontLightColor;
+				.month{
+					margin-top: 7px;
+				}
+			}
+		}
+		
+		.excerpt{
+			margin-top: 40px;
+			color: @fontColorInner;
+			.post-heading{
+				font-family: mensch;
+				font-size: 36px;
+				line-height: 1.1em;
+				color: @fontColorInner;
+				display: block;
+				max-width: 480px;
+			}
+		}
+		
+		.meta{
+			display: block;
+			border-top: 1px solid @fontColorInner;
+			font-size: 14px;
+			padding-top: 10px;
+			a{
+				color: @accentColor;
+			}
+		}
+	}
+}
+
+
+/* PAGE NAVIGATION ------------------------------------------------------------*/
+
+#main .page-navigation{
+	position: relative;
+	left: 50%;
+	display: block;
+	margin-bottom: 100px;
+	float: left;
+	
+	div{
+		position: relative;
+		right: 50%;
+		
+		
+		.shadow();
+		
+		span{
+			margin-bottom: 15px;
+			display: inline-block;
+		}
+	}
+	
+	a{
+		display: block;
+		.transition();
+		color: @accentColor;
+		display: block;
+		padding: 10px 15px;
+	}
+	
+	.nav-next{
+		float: left;
+		margin-right: 20px;
+		background: @fgColor url(../img/arrow-left.png) no-repeat left 12px;
+		padding-left: 20px;
+	}
+	
+	.nav-previous{
+		float: right;
+		background: @fgColor url(../img/arrow-right.png) no-repeat right 12px;
+		padding-right: 20px;
+	}
+}
+
+
+/* SIDEBAR ------------------------------------------------------------*/
+
+#sidebar{
+	position: relative;
+	width: 260px; 
+	float: right;
+	font-size: 14px;
+	
+	.block{
+		margin-bottom: 40px;
+		padding-bottom: 5px;
+	}
+	
+	.heading{
+		border-top:  5px solid @fontColor;
+		border-bottom: 5px solid @fontColor;
+		margin-bottom: 15px;
+		padding-top: 15px;
+		padding-bottom: 10px;
+		line-height: 1.1em;
+		text-align: center;
+	}
+	
+	li{
+		margin-bottom: 7px;
+	}
+	
+	a{
+		color: @accentColor;
+	}
+}
+
+/* FILTERED ITEMS ----------------------------------------------------*/ 
+
+.isotope-item {
+  z-index: 2;
+}
+
+.isotope-hidden.isotope-item {
+  pointer-events: none;
+  z-index: 1;
+}
+
+
+#filter-buttons{
+	
+	text-align: center;
+	background: url(../img/filter.png) no-repeat top center;
+	height: 47px;
+	margin-bottom: 20px;
+	
+	li{
+		display: inline-block;
+		margin-bottom: 0px;
+		
+		a{
+			display: block;
+			text-decoration: none;
+			margin-bottom: 0px;
+			margin-right: 5px;
+			line-height: 47px;
+			color: @accentColor;
+		}
+		
+		.selected{
+			background: url(../img/filter-arrow.png) no-repeat center top;
+		}
+	}
+}
+
+
+/* COLUMNS LAYOUT----------------------------------------------------------*/
+
+.one-half,
+.one-third,
+.one-fourth{	
+	float:left;
+	margin-bottom: 40px;
+	margin-right: 2.1276%;
+	position:relative;
+}
+
+.one-half{ 
+	width: 48.9361%;
+}
+
+.one-third{ 
+	width: 31.9148%;
+	
+}
+
+.one-fourth{ 
+	width: 23.4042%;
+}
+
+.last {
+	clear:right;
+	margin-right:0 !important;
+}
+
+
+/* FOOTER ----------------------------------------------------*/ 
+
+footer{
+	background: #585246 url(../img/footer.png) repeat-x;
+	color: #f3e4c8;
+	padding-bottom: 60px;
+	a{
+		color: #fff;
+		text-decoration: none;
+		&:hover{
+			color: @accentColor;
+		}
+	}
+	
+	h1,h2,h3,h4,h5,h6{
+		color: #f9f5ed;
+		font-family: mensch;
+		word-spacing: -.1em;
+		.text-shadow();
+		line-height: 1.3em;
+	}
+	
+	
+	.sb-holder{
+		position: relative;
+		left: 50%;
+		text-align: center;
+		float: left;
+		
+
+		
+	}
+	
+	#social-bar{
+		display: block;
+		position: relative;
+		float: left;
+		right: 50%;
+		margin: -7px 5px 0px 5px;
+		background: url(../img/social-bg.png) repeat-x;
+		height: 46px;
+		padding-top: 8px;
+		padding-left: 10px;
+		padding-right: 10px;
+		
+		
+		li{
+			float: left;
+			line-height: 1em;
+			margin-left: 3px;
+			margin-right: 3px;
+			a{
+				display: block;
+				line-height: 0em;
+				&:hover{
+					-webkit-transform: translate(0px, -2px);
+					-moz-transform: translate(0px, -2px);
+					-o-transform: translate(0px, -2px);
+					transform: translate(0px, -2px);
+				}
+			}
+			
+		}
+		
+		.left-corner{
+			position: absolute;
+			top:0px;
+			left: -10px;
+			display: block;
+			width: 10px;
+			height: 18px;
+			background: url(../img/social-left-corner.png) no-repeat left top;
+		}
+		
+		.right-corner{
+			position: absolute;
+			top:0px;
+			right: -13px;
+			display: block;
+			width: 10px;
+			height: 18px;
+			background: url(../img/social-right-corner.png) no-repeat left top;
+		}
+		
+		
+	}
+	
+	#footer-bottom{
+		font-size: 14px;
+		text-align: center;
+		border-top: 1px solid rgba(0,0,0,0.2);
+		padding-top: 25px;
+	}
+	
+}
+
+/* WIDGET COLS ------------------------------------------------------------*/
+
+.widget-cols{
+	margin-top: 80px;
+	margin-bottom: 30px;
+	font-size: 14px;
+	
+	h1, h2, h3, h4, h5, h6{
+		margin-bottom: 20px;
+		font-weight: normal;
+		text-align: center;
+		border-bottom: 0px solid #ada18e;
+		border-top: 0px solid #ada18e;
+		padding-top:0px;
+		padding-bottom: 0px;
+	}
+	
+	>li{
+		width: 220px;
+		float: left;
+		margin-right: 20px;
+	}
+	
+	>li.fourth-col{
+		margin-right: 0px;
+	}
+}
+
+
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/less/widgets.less
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/less/widgets.less	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/less/widgets.less	(revision 28599)
@@ -0,0 +1,90 @@
+
+@import "palette.less";
+
+/* SIDEBAR  ----------------------------------------------------*/ 
+
+#sidebar{
+	.cat-item,
+	.page_item {
+		a{
+			display: block;
+			border-bottom: 1px solid rgba(0,0,0,0.1);
+			padding-bottom: 5px;
+			margin-bottom: 5px;
+			padding-left: 10px;
+			
+			.post-counter{
+				color: @fontColor;
+			}
+		}
+	}
+	
+	.ads{
+		a{
+			display: block;
+			float: left;
+			margin-right: 10px;
+			margin-bottom: 10px;
+			line-height: 0em;
+		}
+		
+		a.last{
+			margin-right: 0px;
+		}
+	}
+}
+
+/* WIDGETS -----------------------------------------------*/
+
+.widget-cols{
+
+	.cat-item,
+	.page_item {
+		a{
+			display: block;
+			border-bottom: 1px solid rgba(255, 255, 255, .1);
+			padding-bottom: 5px;
+			margin-bottom: 5px;
+			padding-left: 10px;
+			
+			.post-counter{
+				color: #f1f1f1;
+			}
+		}
+	}
+	
+	
+	.cat-item:last-child,
+	.page_item:last-child{
+		a{
+			border-bottom: none;
+		}
+	}
+	
+	/* RECENT POSTS -----------------------------------------------*/
+
+	.recent-post{
+		margin-bottom: 21px;
+		
+		.thumb{
+			display: block;
+			float: left;
+			background: #f1f1f1;
+			line-height: 0em;
+			padding: 3px;
+			margin-right: 15px;
+			margin-bottom: 10px;
+			.box-shadow();
+		}
+		
+		.post-head{
+			overflow: auto;
+		}
+		
+		span{
+			display: block;
+		}
+	
+	}
+		
+}
Index: documentation/trunk/tutorial_sample_files/libraries/althor/license.txt
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/license.txt	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/license.txt	(revision 28599)
@@ -0,0 +1,17 @@
+License
+
+Thanks for Downloading!
+This resource is free for personal and commercial use no attribution necessary. Note. I don't offer support on free files.
+
+
+
+
+Visit my site for more free content at:
+
+http://www.luiszuno.com
+
+
+________________________________________
+Enjoy,
+www.luiszuno.com
+luis@luiszuno.com
Index: documentation/trunk/tutorial_sample_files/libraries/althor/transform/layouts/header.xsl
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/transform/layouts/header.xsl	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/transform/layouts/header.xsl	(revision 28599)
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:java="http://xml.apache.org/xslt/java"
+	xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
+	xmlns:gslib="http://www.greenstone.org/skinning"
+	xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
+	extension-element-prefixes="java util"
+	exclude-result-prefixes="java util gsf">
+			
+	<!-- Creates a header for the html page -->
+	<xsl:template name="create-html-header">
+		<base>
+			<xsl:attribute name="href">
+				<xsl:choose>
+					<xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'siteURL']">
+						<xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'siteURL']"/>
+					</xsl:when>
+					<xsl:when test="/page/pageRequest/@baseURL">
+						<xsl:value-of select="/page/pageRequest/@baseURL"/>
+					</xsl:when>
+				</xsl:choose>
+			</xsl:attribute>
+		</base>
+		<xsl:comment>[if lte IE 6]&gt;&lt;/base&gt;&lt;![endif]</xsl:comment>
+	
+		<title><xsl:call-template name="pageTitle"/> :: <xsl:call-template name="siteName"/></title>
+		
+		<xsl:if test="/page/pageRequest/@action ='d'">
+		  
+		  <xsl:variable name="myMetadataHeader" select="/page/pageResponse/format/gsf:headMetaTags/gsf:metadata"/>
+		  <xsl:for-each select="$myMetadataHeader">
+		    <xsl:variable name="metaname" select="@name"/>
+		    
+		    <xsl:variable name="metavals" 
+				  select="/page/pageResponse/document/metadataList/metadata[@name = $metaname]|/page/pageResponse/document/documentNode/metadataList/metadata[@name = $metaname]"/>
+		    <xsl:for-each select="$metavals">
+		      <META NAME="{$metaname}" CONTENT="{.}"/>
+		    </xsl:for-each>
+		  </xsl:for-each>
+		  
+		</xsl:if>
+
+			<link rel="stylesheet" media="screen" href="interfaces/{$interface_name}/css/superfish.css" /> 
+	<link rel="stylesheet" href="interfaces/{$interface_name}/css/nivo-slider.css" media="all"  /> 
+	<link rel="stylesheet" href="interfaces/{$interface_name}/css/tweet.css" media="all"  />
+	<link rel="stylesheet" href="interfaces/{$interface_name}/css/style.css"/>
+	<link rel="stylesheet" media="all" href="interfaces/{$interface_name}/css/lessframework.css"/>
+		<link rel="stylesheet" href="interfaces/{$interface_name}/css/gs3-core-min.css"/>	
+		<link rel="shortcut icon" href="interfaces/{$interface_name}/images/favicon.ico"/> 
+		
+		<script type="text/javascript" src="interfaces/{$interface_name}/js/jquery.min.js"><xsl:text> </xsl:text></script>
+		<script type="text/javascript" src="interfaces/{$interface_name}/js/jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.min.js"><xsl:text> </xsl:text></script>
+		<script type="text/javascript" src="interfaces/{$interface_name}/js/jquery.themeswitcher.min.js"><xsl:text> </xsl:text></script>
+		<script type="text/javascript" src="interfaces/{$interface_name}/js/jquery.blockUI.js"><xsl:text> </xsl:text></script>
+		<script type="text/javascript" src="interfaces/{$interface_name}/js/ace/ace.js"><xsl:text> </xsl:text></script>
+		
+		<script type="text/javascript" src="interfaces/{$interface_name}/js/zoomer.js"><xsl:text> </xsl:text></script>
+
+		<xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
+		  <xsl:call-template name="map-scripts"/>
+		</xsl:if>
+		
+		<xsl:if test="/page/pageResponse/format/gsf:option[@name='mapEnabledOpenLayers']/@value = 'true'">
+		  <xsl:call-template name="openlayers-map-scripts"/>
+		</xsl:if>
+
+
+		<xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'">
+		  <xsl:call-template name="panoramaViewer-scripts"/>
+		</xsl:if>
+
+		<xsl:if test="/page/pageRequest/userInformation and /page/pageRequest/userInformation/@editEnabled = 'true' and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))">
+			<xsl:if test="/page/pageRequest/paramList/param[(@name='docEdit') and (@value='on' or @value='true' or @value='1')]">
+				<script type="text/javascript" src="interfaces/{$interface_name}/js/direct-edit.js"><xsl:text> </xsl:text></script>
+				<xsl:call-template name="init-direct-edit"/>
+			</xsl:if>
+			<script type="text/javascript" src="interfaces/{$interface_name}/js/debug_scripts.js"><xsl:text> </xsl:text></script>
+			<script type="text/javascript" src="interfaces/{$interface_name}/js/visual-xml-editor.js"><xsl:text> </xsl:text></script>
+		</xsl:if>
+		
+		<xsl:call-template name="setup-gs-variable"/>
+		<xsl:call-template name="define-js-macro-variables"/>
+
+		<xsl:call-template name="additionalHeaderContent"/>
+	</xsl:template>
+	
+</xsl:stylesheet>
Index: documentation/trunk/tutorial_sample_files/libraries/althor/transform/layouts/main.xsl
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/transform/layouts/main.xsl	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/transform/layouts/main.xsl	(revision 28599)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
+	xmlns:java="http://xml.apache.org/xslt/java"
+	xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
+	xmlns:gslib="http://www.greenstone.org/skinning"
+    xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
+    
+    xmlns:lxslt="http://xml.apache.org/xslt"
+    xmlns:result="http://www.example.com/results"
+    xmlns:exsl="http://exslt.org/common"
+
+	extension-element-prefixes="java util result exsl"
+	exclude-result-prefixes="util java util">
+
+	
+<!-- The main layout is defined here -->
+<xsl:template name="mainTemplate">
+<html>
+	<head>
+		<!-- ***** in header.xsl ***** -->
+		<xsl:call-template name="create-html-header"/>
+	</head>
+	<body>
+	<header>
+		
+		<!-- header wrapper -->
+		<div class="wrapper cf">
+			<div id="logo">
+				<a href="{$library_name}" ><img src="interfaces/{$interface_name}/img/logo.png" alt="" /></a>
+			</div>
+		</div><!-- ENDS header wrapper -->
+		<!-- ENDS header wrapper -->
+		
+		
+		
+		<!-- nav -->
+	<nav class="cf">
+			<div class="wrapper cf">
+				<ul id="nav" class="sf-menu">
+					<xsl:call-template name="navBar"/> 
+				</ul>
+				<div id="combo-holder"></div>
+			</div>
+		</nav>
+		<!-- ends nav -->
+			
+	</header>
+		<div role="main" id="main">
+		<div class="wrapper">
+		<xsl:apply-templates select="/page"/>
+			  </div>
+	</div>
+		<xsl:call-template name="gs_footer"/>
+		
+			<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"><xsl:text> </xsl:text></script>
+	
+	
+	<!-- scripts concatenated and minified via build script -->
+	<script src="interfaces/{$interface_name}/js/custom.js"><xsl:text> </xsl:text></script>
+	
+	<!-- superfish -->
+	<script  src="interfaces/{$interface_name}/js/superfish-1.4.8/js/hoverIntent.js"><xsl:text> </xsl:text></script>
+	<script  src="interfaces/{$interface_name}/js/superfish-1.4.8/js/superfish.js"><xsl:text> </xsl:text></script>
+	<script  src="interfaces/{$interface_name}/js/superfish-1.4.8/js/supersubs.js"><xsl:text> </xsl:text></script>
+	<!-- ENDS superfish -->
+	
+	<script src="interfaces/{$interface_name}/js/tweet/jquery.tweet.js" ><xsl:text> </xsl:text></script>
+	<script src="interfaces/{$interface_name}/js/jquery.isotope.min.js"><xsl:text> </xsl:text></script>
+	<script src="interfaces/{$interface_name}/js/jquery.nivo.slider.js" ><xsl:text> </xsl:text></script>
+	<script src="interfaces/{$interface_name}/js/css3-mediaqueries.js"><xsl:text> </xsl:text></script>
+	<script src="interfaces/{$interface_name}/js/tabs.js"><xsl:text> </xsl:text></script>
+	<script  src="interfaces/{$interface_name}/js/poshytip-1.1/src/jquery.poshytip.min.js"><xsl:text> </xsl:text></script>
+		
+		
+	</body>
+</html>
+</xsl:template>
+	
+<!-- Template controlling the footer. -->
+<xsl:template name="gs_footer">
+<!-- Put footer in here. -->
+<footer>
+		<!-- wrapper -->
+		<div class="wrapper cf">
+			<!-- social -->
+			<div class="sb-holder cf">
+				<ul id="social-bar" class="cf">
+					<li class="left-corner"><i></i></li>
+					<li><a href="http://www.facebook.com"  title="Become a fan" ><img src="interfaces/{$interface_name}/img/social/Facebook.png"  alt="Facebook" /></a></li>
+					<li><a href="http://www.twitter.com" title="Follow my tweets" ><img src="interfaces/{$interface_name}/img/social/Twitter.png"  alt="twitter" /></a></li>
+					<li><a href="http://www.google.com"  title="Add to the circle" ><img src="interfaces/{$interface_name}/img/social/Google+.png" alt="Google plus" /></a></li>
+					<li class="right-corner"><i></i></li>
+					<li><a href="http://www.google.com"  title="Add to the circle" ><img src="interfaces/{$interface_name}/img/social/RSS.png" alt="RSS" /></a></li>
+					<li class="right-corner"><i></i></li>					
+				</ul>
+			</div>
+			<!-- ENDS social -->
+			<!-- widgets -->
+			<ul  class="widget-cols cf">
+				<li class="first-col">
+					<div class="widget-block">
+						<h4>RECENT POSTS</h4>
+						<div class="recent-post cf">
+							<a href="#" class="thumb"><img src="interfaces/{$interface_name}/images/54x54.jpg" alt="Post" /></a>
+							<div class="post-head">
+								<a href="#">Pellentesque habitant morbi senectus </a><span> March 12, 2011</span>
+							</div>
+						</div>
+						<div class="recent-post cf">
+							<a href="#" class="thumb"><img src="interfaces/{$interface_name}/images/54x54.jpg" alt="Post" /></a>
+							<div class="post-head">
+								<a href="#">Pellentesque habitant morbi senectus</a><span> March 12, 2011</span>
+							</div>
+						</div>
+						<div class="recent-post cf">
+							<a href="#" class="thumb"><img src="interfaces/{$interface_name}/images/54x54.jpg" alt="Post" /></a>
+							<div class="post-head">
+								<a href="#">Pellentesque habitant morbi senectus</a><span> March 12, 2011</span>
+							</div>
+						</div>
+					</div>
+				</li>
+				<li class="second-col">
+					<div class="widget-block">
+						<h4>ABOUT</h4>
+						<p>Vintage Template it's completely free this means you don't have to pay anything <a href="http://luiszuno.com/blog/license" >read license</a>.</p> 
+						
+						<p>Placeholder images by <a href="http://twistedfork.me/" >Dan Matutina</a></p>
+						<p>Visit <a href="http://templatecreme.com/" >Template Creme</a> and find the most beautiful free templates up to date.</p></div>
+				</li>
+				<li class="third-col">
+					<div class="widget-block">
+						<div id="tweets" class="footer-col tweet">
+		     				<h4>TWITTER WIDGET</h4>
+		     			</div>
+		     		</div>	
+				</li>
+				<li class="fourth-col">
+					<div class="widget-block">
+						<h4>CATEGORIES</h4>
+						<ul>
+							<li class="cat-item"><a href="#" >Design</a></li>
+							<li class="cat-item"><a href="#" >Photo</a></li>
+							<li class="cat-item"><a href="#" >Art</a></li>
+							<li class="cat-item"><a href="#" >Game</a></li>
+							<li class="cat-item"><a href="#" >Film</a></li>
+							<li class="cat-item"><a href="#" >TV</a></li>
+						</ul>
+					</div>
+		     		
+				</li>	
+			</ul>
+			<!-- ENDS widgets -->
+			<div id="footer-bottom">Vintage Template designed by <a href="http://www.luiszuno.com" >luiszuno.com</a></div>
+
+		</div><!-- ENDS wrapper -->
+	</footer>
+</xsl:template>
+<xsl:template name="navBar">
+<xsl:choose>
+<xsl:when test="page/pageResponse/collection">
+<xsl:variable name="count" select="count(/page/pageResponse/collection/serviceList/service[@name='ClassifierBrowse']/classifierList/classifier)"/>
+<xsl:variable name="currentPage" select="page/pageRequest/@fullURL"/>
+
+<li><a href="{$library_name}">Home</a></li>
+<li>
+<xsl:if test="page/pageRequest/@subaction='about'"><xsl:attribute name="class">active</xsl:attribute></xsl:if>
+<a href="{$library_name}/collection/{$collNameChecked}/page/about">About</a>
+</li>
+
+<xsl:choose>
+<xsl:when test="$count > 3">
+<li><a href="{$currentPage}">Browse</a>
+<ul>
+<xsl:call-template name="Browsing"/>
+</ul>
+</li>
+</xsl:when>
+<xsl:otherwise>
+<xsl:call-template name="Browsing"/>
+</xsl:otherwise>
+</xsl:choose>
+
+<xsl:if test="/page/pageResponse/collection/serviceList/service/@type='query'">
+<li><a href="{$currentPage}">Search</a>
+<ul>
+<xsl:for-each select="/page/pageResponse/collection/serviceList/service[@type='query']">
+<xsl:variable name="search" select="@name"/>
+<xsl:variable name="search_name" select="displayItem[@name='name']"/>
+<li><a href="{$library_name}/collection/{$collNameChecked}/search/{$search}"><xsl:value-of select="$search_name"/></a></li>
+</xsl:for-each>
+</ul>
+</li>
+</xsl:if>
+
+</xsl:when>
+<xsl:otherwise> </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="Browsing">
+<xsl:for-each select="/page/pageResponse/collection/serviceList/service[@name='ClassifierBrowse']/classifierList/classifier">
+<li>
+<xsl:choose>
+<!-- If this tab is selected then colour it differently -->
+<xsl:when test="util:contains(/page/pageRequest/paramList/param[@name = 'cl' and /page/pageRequest/@action = 'b']/@value, @name)">
+<xsl:attribute name='class'>active</xsl:attribute>
+</xsl:when>
+<xsl:otherwise> </xsl:otherwise>
+</xsl:choose>
+
+<a>
+<!-- Add a title element to the <a> tag if a description exists for this classifier -->
+<xsl:if test="displayItem[@name='description']">
+<xsl:attribute name='title'><xsl:value-of select="displayItem[@name='description']"/></xsl:attribute>
+</xsl:if>
+
+<!-- Add the href element to the <a> tag -->
+<xsl:choose>
+<xsl:when test="@name">
+<xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/@name"/>/browse/<xsl:value-of select="@name"/></xsl:attribute>
+</xsl:when>
+<xsl:otherwise>
+<xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/@name"/>/browse/1</xsl:attribute>
+</xsl:otherwise>
+</xsl:choose>
+
+<!-- Add the actual text of the <a> tag -->
+<xsl:value-of select="displayItem[@name='name']"/>
+</a>
+</li>
+</xsl:for-each>
+</xsl:template>
+		
+</xsl:stylesheet>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!--		
+<xsl:template name="navBar">
+<xsl:choose>
+<xsl:when test="page/pageResponse/collection">
+<xsl:variable name="count" select="count(/page/pageResponse/collection/serviceList/service[@name='ClassifierBrowse']/classifierList/classifier)"/>
+<xsl:variable name="currentPage" select="page/pageRequest/@fullURL"/>
+
+<li><a href="{$library_name}">Home<i><b><xsl:text> </xsl:text></b></i></a></li>
+<li>
+<xsl:if test="page/pageRequest/@subaction='about'"><xsl:attribute name="class">current-menu-item</xsl:attribute></xsl:if>
+<a href="{$library_name}/collection/{$collNameChecked}/page/about">About<i><b><xsl:text> </xsl:text></b></i></a>
+</li>
+
+<xsl:choose>
+<xsl:when test="$count > 3">
+<li>
+<xsl:if test="page/pageRequest/@action='b'"><xsl:attribute name="class">current-menu-item</xsl:attribute></xsl:if>
+<a href="{$currentPage}">Browse<i><b><xsl:text> </xsl:text></b></i></a>
+<ul>
+<xsl:call-template name="Browsing"/>
+</ul>
+</li>
+</xsl:when>
+<xsl:otherwise>
+<xsl:call-template name="Browsing"/>
+</xsl:otherwise>
+</xsl:choose>
+
+<xsl:if test="/page/pageResponse/collection/serviceList/service/@type='query'">
+<li><xsl:if test="page/pageRequest/@action='q'"><xsl:attribute name="class">current-menu-item</xsl:attribute></xsl:if><a><xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="$collNameChecked"/>/search/<xsl:value-of select="/page/pageResponse/collection/serviceList/service[@type='query'][1]/@name"/></xsl:attribute>Search<i><b><xsl:text> </xsl:text></b></i></a>
+<ul>
+<xsl:for-each select="/page/pageResponse/collection/serviceList/service[@type='query']">
+<xsl:variable name="search" select="@name"/>
+<xsl:variable name="search_name" select="displayItem[@name='name']"/>
+<li><a href="{$library_name}/collection/{$collNameChecked}/search/{$search}"><xsl:value-of select="$search_name"/></a></li>
+</xsl:for-each>
+</ul>
+</li>
+</xsl:if>
+
+</xsl:when>
+<xsl:otherwise> </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="Browsing">
+<xsl:for-each select="/page/pageResponse/collection/serviceList/service[@name='ClassifierBrowse']/classifierList/classifier">
+<li>
+<xsl:choose>
+<xsl:when test="util:contains(/page/pageRequest/paramList/param[@name = 'cl' and /page/pageRequest/@action = 'b']/@value, @name)">
+<xsl:attribute name='class'>current-menu-item</xsl:attribute>
+</xsl:when>
+<xsl:otherwise> </xsl:otherwise>
+</xsl:choose>
+
+<a>
+
+<xsl:if test="displayItem[@name='description']">
+<xsl:attribute name='title'><xsl:value-of select="displayItem[@name='description']"/></xsl:attribute>
+</xsl:if>
+
+
+<xsl:choose>
+<xsl:when test="@name">
+<xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/@name"/>/browse/<xsl:value-of select="@name"/></xsl:attribute>
+</xsl:when>
+<xsl:otherwise>
+<xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/@name"/>/browse/1</xsl:attribute>
+</xsl:otherwise>
+</xsl:choose>
+
+<xsl:value-of select="displayItem[@name='name']"/><i><b><xsl:text> </xsl:text></b></i>
+</a>
+</li>
+</xsl:for-each>
+</xsl:template>		
+	-->	
+
+
+
+
+
+
Index: documentation/trunk/tutorial_sample_files/libraries/althor/transform/pages/home.xsl
===================================================================
--- documentation/trunk/tutorial_sample_files/libraries/althor/transform/pages/home.xsl	(revision 28599)
+++ documentation/trunk/tutorial_sample_files/libraries/althor/transform/pages/home.xsl	(revision 28599)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:java="http://xml.apache.org/xslt/java"
+	xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
+	xmlns:gslib="http://www.greenstone.org/skinning"
+	extension-element-prefixes="java util"
+	exclude-result-prefixes="java util">
+
+	<!-- the page content -->
+	<xsl:template match="/page/pageResponse">
+				<!-- SLIDER -->
+		<div class="slider-wrapper theme-default theme-project theme-home">
+            <div class="ribbon"><xsl:text> </xsl:text></div>
+            <div id="slider" class="nivoSlider">
+				<xsl:call-template name="collSlider"/>
+            </div>
+        </div>
+		<!-- ENDS SLIDER -->
+	
+				<!-- headline -->
+		<div class="headline">Select a collection to explore!</div>
+		<!-- ENDS headline -->
+			 	 <!-- Feature -->
+	 	 <ul id="filter-container-feature" class="feature">
+			<xsl:call-template name="collList"/>
+	 	 </ul>
+	 	 <!-- ENDS feature -->
+	</xsl:template>
+
+	
+<xsl:template name="collSlider">
+<xsl:for-each select="./collectionList/collection">
+<xsl:variable name="homeImage" select="displayItem[@name='smallicon']"/>
+
+<xsl:choose>
+<xsl:when test="$homeImage">
+<xsl:variable name="collectionFolder" select="@name"/>
+<xsl:variable name="collectionName" select="displayItem[@name='name']"/>
+
+<a href="{$library_name}/collection/{$collectionFolder}/page/about">
+<img src="sites/{$site_name}/collect/{$collectionFolder}/images/{$homeImage}" title="{$collectionName}" />
+</a>
+</xsl:when>
+<xsl:otherwise/>
+</xsl:choose>
+
+</xsl:for-each>
+</xsl:template>	
+
+<xsl:template name="collList">
+<xsl:for-each select="./collectionList/collection">
+<xsl:variable name="collectionFolder" select="@name"/>
+<xsl:variable name="collectionName" select="displayItem[@name='name']"/>
+<xsl:variable name="homeImage" select="displayItem[@name='smallicon']"/>
+
+		 	<li>
+			 	<a href="{$library_name}/collection/{$collectionFolder}/page/about" class="thumb" >
+				<xsl:choose>
+<xsl:when test="$homeImage">
+<img src="sites/{$site_name}/collect/{$collectionFolder}/images/{$homeImage}" title="{$collectionName}" />
+</xsl:when>
+<xsl:otherwise>
+<img src="interfaces/{$interface_name}/images/default.jpg" title="{$collectionName}" />
+</xsl:otherwise>
+</xsl:choose>
+				 	
+			 	
+			 	<div class="caption"><xsl:value-of select="$collectionName"/></div></a>
+		 	</li>  
+
+
+</xsl:for-each>
+</xsl:template>	
+</xsl:stylesheet>
+
+
