summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordumpfmprod <dumpfmprod@ubuntu.(none)>2010-06-18 16:55:21 -0400
committerdumpfmprod <dumpfmprod@ubuntu.(none)>2010-06-18 16:55:21 -0400
commit09aeb5d1ff8322a89274c845491ffd0667cabc2f (patch)
tree4642a035e8f9a66c18a2688cb41081fae212599a
parent26395dfb9f364fda136ac7bc05dfce76566f28d0 (diff)
sostler prod commit
-rwxr-xr-xstatic/css/dump.css719
-rwxr-xr-xstatic/css/header.css64
-rw-r--r--static/css/index.css136
-rw-r--r--static/css/pages.css203
-rwxr-xr-xstatic/css/reset.css55
-rw-r--r--static/css/top.css55
-rw-r--r--static/img/thumbs/wdheart.gifbin0 -> 99 bytes
-rw-r--r--static/img/thumbs/wdheartover.gifbin0 -> 104 bytes
-rw-r--r--static/index.html224
-rwxr-xr-xstatic/js/home.js332
-rw-r--r--static/js/pichat.js418
-rwxr-xr-xstatic/js/register.js334
-rw-r--r--static/register.html8
-rw-r--r--template/about_us.st2
-rw-r--r--template/banner.st5
-rw-r--r--template/browser.st3
-rw-r--r--template/chat.st9
-rw-r--r--template/head.st3
-rw-r--r--template/help.st2
-rw-r--r--template/nigga.st89
-rw-r--r--template/privacy.st2
-rw-r--r--template/terms.st2
22 files changed, 2482 insertions, 183 deletions
diff --git a/static/css/dump.css b/static/css/dump.css
index 9f7d1dd..83754a9 100755
--- a/static/css/dump.css
+++ b/static/css/dump.css
@@ -1,4 +1,649 @@
+/* reset.css
+ From http://meyerweb.com/eric/tools/css/reset/
+ v1.0 | 20080212 */
+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, font, 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 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+
+/*header stuff */
+
+
+.white a:hover {
+ text-decoration: none;
+ color: #fff;
+}
+.white a:active {
+ text-decoration: none;
+
+
+ color: #fff;
+}
+#header7{
+ margin: 0px auto -1px auto;
+ top:-1px;
+height:49px;
+ position:fixed;background-image:url(/static/img/bg.dither.gif);
+background-color:#eee;
+border:1px solid #000;
+width:100%;
+min-width:600px;
+left:-1px;
+ box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
+ -webkit-box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
+ -moz-box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
+
+}
+#bar7{
+ top:19px;
+ position:absolute;
+ word-spacing:-1;
+ font-size: 16px;
+height:22;
+
+text-indent:14px;
+line-height:1.9;
+ left: 125px;
+ margin-left: 0.1%;
+ margin-right: 8%;
+ letter-spacing:.2px;
+ z-index: 999;
+}
+
+#bar7 img{
+margin-top:4;display:none;
+ vertical-align: top;
+}
+#bar7 a{
+ text-decoration: none;
+ font-size:13;
+padding:6px;
+cursor:pointer;
+ color: #000;
+
+
+}
+#bar7 a:hover{
+ text-decoration: none;
+padding:6px;background-color:#fff;
+ color: #000;
+
+}
+#logout7{
+ top:-1px;
+height:16px;
+padding-left:4px;padding-right:3px;
+
+ border-bottom-left-radius:3px;
+ -webkit-border-bottom-left-radius:3px;
+ -moz-border-radius-bottomleft:3px;
+ position:relative;
+ font-size:1px;
+border-left:1px solid #999;
+border-bottom:1px solid #999;
+background-color:#eff5fb;
+ float:right;
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: normal;
+}
+#logout7 img{display:none;
+}
+#logout7 a{font-size:10px; color: #5a5858;
+
+}
+#logout7 a:hover{font-size:10px;
+color:#000; text-shadow: 0px 1px 0px #fff;
+}
+#toplogin{
+margin-top:8px;
+margin-right:5px;
+
+}
+
+.white a:link {
+ text-decoration: none;
+ font-size:14px;
+ color: #fff;
+}
+.white a:visited {
+ text-decoration: none;
+ font-size:14px;
+ color: #fff;
+}
+#logo7{
+ margin-left: 10px;
+ z-index:1050; text-decoration: none;
+ float:left;
+ margin-top:-1px;
+}
+#logo7 a{font-size:28px;
+
+letter-spacing:-1;
+font-weight:bold; text-decoration: none;
+color:#000;
+}
+#logo7 a:hover{
+color:#000; text-decoration: none;
+text-shadow: -0.5px -0.5px 0px #f0e;
+}
+#dumplist{
+top:0px:width:100%;padding:0px;background-color:#fff;
+color:#000;font-size:60%;text-transform:uppercase;text-decoration: none;
+border-bottom:1px solid #999;text-align:right;
+padding-right:70px;line-height:1.1;background-color:#eff5fb;
+/*margin-left:40%;
+ border-bottom-left-radius:5px;
+ -webkit-border-bottom-left-radius:5px;
+ -moz-border-radius-bottomleft:5px;text-decoration: none;
+border-left:1px solid #999;*/
+}
+#dumplist a{color:#000;font-size:100%;text-transform:uppercase;text-decoration: none;
+}
+#dumplist a:hover{color:#000;text-decoration: none;
+
+}
+#rapper7{
+ top: 0px;
+ left:0px;
+ position:absolute;
+ width: 100%;
+ height: 62px;
+ z-index: 1000;
+}
+#logoicons{
+width:auto;
+}
+#registerlink{
+ font-size: 16px;
+word-spacing:2;
+line-height:2.4;
+font-weight:bold;
+}
+
+#registerlink img{
+display:none;
+}
+
+.no-cursor { cursor: none; }
+.invisible { display: none !important; }
+#cursor-big { position: absolute; z-index: 1000; }
+
+.thumb {
+ cursor:pointer;
+}
+
+img.chat-thumb {
+ cursor:pointer;
+ position: absolute;
+ /*margin-top: -10px;*/
+ width: 16px;
+ height: 16px;
+ bottom: 4px;
+ right: 4px;
+ /*left: 4px;*/
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+
+
+.dump .nick {
+ position: relative;
+ padding-right: 15px;
+}
+
+.logged-dump {
+ position: relative;
+}
+
+/* sharing */
+.buttons{
+ cursor:pointer;
+
+
+}
+.buttons .share {
+ opacity: 0.8;
+}
+.buttons .share:hover {
+ opacity: 1;
+}
+.buttons .other-sites {
+ /*padding-left: 20px;*/
+}
+img.thumb {
+ position: absolute;
+image-rendering: -moz-crisp-edges;
+ margin-left: 0px;
+ margin-top: 0px;
+ height: 27px;
+ width: 27px;
+ left:110px;
+ bottom: 9px;
+ display: block;
+}
+
+.thumb.favorite {
+ position: absolute;
+ margin-left: 0px;
+ margin-top: 0px;
+ height: 27px;
+ width: 27px;
+ display: block;
+}
+
+a.youtube {
+ position: relative;
+}
+
+.youtube .youtube-thumb {
+ width: 130px;
+ height: 97px;
+ padding-bottom: 22px;
+ margin: 0;
+}
+.youtube .youtube-controls {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ margin: 0;
+}
+.share-buttons{
+cursor:pointer;
+width:100;
+}
+ /*searchstuff*/
+#searchbox{
+position:absolute;
+top:19px;
+margin-right:10px;
+}
+#search-query{
+background: white;
+border: 1px solid #999;
+color: #C0C8D3;
+font-size: 13px;
+padding: 3px 12px 3px 37px;
+padding-left: 37px;
+padding-left: 37px;
+width:190px;
+
+}
+#search-query .search_icon {
+background:url("http://dump.fm/static/img/hourglass.png") no-repeat scroll center center transparent;
+bottom:3px;
+cursor:pointer;
+left:6px;
+opacity:0.8;
+position:absolute;
+top:3px;
+width:32px;
+}
+
+.white a:hover {
+ text-decoration: none;
+ color: #fff;
+}
+.white a:active {
+ text-decoration: none;
+
+
+ color: #fff;
+}
+#header7{
+ margin: 0px auto -1px auto;
+ top:-1px;
+height:49px;
+ position:fixed;background-image:url(/static/img/bg.dither.gif);
+background-color:#eee;
+border:1px solid #000;
+width:100%;
+min-width:600px;
+left:-1px;
+ box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
+ -webkit-box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
+ -moz-box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
+
+}
+#bar7{
+ top:19px;
+ position:absolute;
+ word-spacing:-1;
+ font-size: 16px;
+height:22;
+
+text-indent:14px;
+line-height:1.9;
+ left: 125px;
+ margin-left: 0.1%;
+ margin-right: 8%;
+ letter-spacing:.2px;
+ z-index: 999;
+}
+
+#bar7 img{
+margin-top:4;display:none;
+ vertical-align: top;
+}
+#bar7 a{
+ text-decoration: none;
+ font-size:13;
+padding:6px;
+cursor:pointer;
+ color: #000;
+
+
+}
+#bar7 a:hover{
+ text-decoration: none;
+padding:6px;background-color:#fff;
+ color: #000;
+
+}
+#logout7{
+ top:-1px;
+height:16px;
+padding-left:4px;padding-right:3px;
+
+ border-bottom-left-radius:3px;
+ -webkit-border-bottom-left-radius:3px;
+ -moz-border-radius-bottomleft:3px;
+ position:relative;
+ font-size:1px;
+border-left:1px solid #999;
+border-bottom:1px solid #999;
+background-color:#eff5fb;
+ float:right;
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: normal;
+}
+#logout7 img{display:none;
+}
+#logout7 a{font-size:10px; color: #5a5858;
+
+}
+#logout7 a:hover{font-size:10px;
+color:#000; text-shadow: 0px 1px 0px #fff;
+}
+#toplogin{
+margin-top:8px;
+margin-right:5px;
+
+}
+
+.white a:link {
+ text-decoration: none;
+ font-size:14px;
+ color: #fff;
+}
+.white a:visited {
+ text-decoration: none;
+ font-size:14px;
+ color: #fff;
+}
+#logo7{
+ margin-left: 10px;
+ z-index:1050; text-decoration: none;
+ float:left;
+ margin-top:-1px;
+}
+#logo7 a{font-size:28px;
+
+letter-spacing:-1;
+font-weight:bold; text-decoration: none;
+color:#000;
+}
+#logo7 a:hover{
+color:#000; text-decoration: none;
+text-shadow: -0.5px -0.5px 0px #f0e;
+}
+#dumplist{
+top:0px:width:100%;padding:0px;background-color:#fff;
+color:#000;font-size:60%;text-transform:uppercase;text-decoration: none;
+border-bottom:1px solid #999;text-align:right;
+padding-right:70px;line-height:1.1;background-color:#eff5fb;
+/*margin-left:40%;
+ border-bottom-left-radius:5px;
+ -webkit-border-bottom-left-radius:5px;
+ -moz-border-radius-bottomleft:5px;text-decoration: none;
+border-left:1px solid #999;*/
+}
+#dumplist a{color:#000;font-size:100%;text-transform:uppercase;text-decoration: none;
+}
+#dumplist a:hover{color:#000;text-decoration: none;
+
+}
+#rapper7{
+ top: 0px;
+ left:0px;
+ position:absolute;
+ width: 100%;
+ height: 62px;
+ z-index: 1000;
+}
+#logoicons{
+width:auto;
+}
+#registerlink{
+ font-size: 16px;
+word-spacing:2;
+line-height:2.4;
+font-weight:bold;
+}
+
+#registerlink img{
+display:none;
+}
+
+.no-cursor { cursor: none; }
+.invisible { display: none !important; }
+#cursor-big { position: absolute; z-index: 1000; }
+
+.thumb {
+ cursor:pointer;
+}
+
+img.chat-thumb {
+ cursor:pointer;
+ position: absolute;
+ /*margin-top: -10px;*/
+ width: 16px;
+ height: 16px;
+ bottom: 4px;
+ right: 4px;
+ /*left: 4px;*/
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+
+
+.dump .nick {
+ position: relative;
+ padding-right: 15px;
+}
+
+.logged-dump {
+ position: relative;
+}
+
+/* sharing */
+.buttons{
+ cursor:pointer;
+
+
+}
+.buttons .share {
+ opacity: 0.8;
+}
+.buttons .share:hover {
+ opacity: 1;
+}
+.buttons .other-sites {
+ /*padding-left: 20px;*/
+}
+img.thumb {
+ position: absolute;
+image-rendering: -moz-crisp-edges;
+ margin-left: 0px;
+ margin-top: 0px;
+ height: 27px;
+ width: 27px;
+ left:110px;
+ bottom: 9px;
+ display: block;
+}
+
+.thumb.favorite {
+ position: absolute;
+ margin-left: 0px;
+ margin-top: 0px;
+ height: 27px;
+ width: 27px;
+ display: block;
+}
+
+a.youtube {
+ position: relative;
+}
+
+.youtube .youtube-thumb {
+ width: 130px;
+ height: 97px;
+ padding-bottom: 22px;
+ margin: 0;
+}
+.youtube .youtube-controls {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ margin: 0;
+}
+.share-buttons{
+cursor:pointer;
+width:100;
+}
+.msvDiv {
+ cursor: pointer;
+}
+
+div.msgDiv:hover {
+ cursor: pointer;
+background-image:url("/static/img/thumbs/stripes.gif");
+background-position:center;
+background-attachment:fixed;
+}
+
+.msgDiv.favorite{
+ cursor: pointer;
+background-image:url("/static/img/thumbs/stripes.gif");
+background-position:center;
+background-attachment:fixed;
+}
+.content{background-color:white;}
+.nick{background-color:white;margin-right:3px;}
+.msgDiv dump{background-color:white;}
+ /*searchstuff*/
+#searchbox{
+position:absolute;
+top:18px;
+right:36px;
+}
+#search-query{
+background: white;
+border: 1px solid #999;
+color: #C0C8D3;
+font-size: 13px;
+padding: 3px 12px 3px 37px;
+padding-left: 37px;
+text-indent:5px;
+ border-radius: 50px;
+ -webkit-border-radius: 50px;
+ -moz-border-radius: 50px;
+}
+.search_icon {
+background:url("http://dump.fm/static/img/hourglass.png") no-repeat scroll center center transparent;
+bottom:3px;
+cursor:pointer;
+left:6px;
+opacity:0.8;
+border-right:1px solid #C0C8D3;
+position:absolute;
+top:3px;
+width:32px;
+}
+
+#searchresults{
+ top:50px;
+ overflow:auto;
+ position:fixed;background-image:url(/static/img/bg.dither.gif);
+background-color:#eee;
+width:100%;
+min-width:600px;
+border-bottom:1px solid #000;
+left:-1px;
+margin-top:-1px;
+}
+#searchresults img{
+ max-width:300px;
+ width: expression(this.width > 300 ? 300: true);
+ max-height:50px;
+ height: expression(this.width > 300 ? 300: true);
+ max-width:300px;
+ border:1px solid #eee;
+ float:left;
+ display:inline;
+ margin-right:10px;
+}
/* pichat.css */
@@ -62,12 +707,6 @@ a:active {
#rapper {
top: 0px;
}
-#trophy{
-position:fixed;
-right:2;
-bottom:15px;
-
-}
#effects-msg{
position:fixed;
bottom:65;
@@ -114,7 +753,35 @@ color:000;
font-size: 11px;
color: #f0e;
}
+#footerp
+{
+ text-align:center;
+ position:fixed;
+ width:100%;
+ bottom:0px;
+line-height:3.1;
+ font-size:11px;
+word-spacing:15px;
+height:28px;
+ color: #000;
+
+}
+#footerp a {
+ font-size: 11px; text-decoration: none;
+ color: #000;
+}
+#footerp a:link {
+ text-decoration: none;
+ font-size: 11px;
+color:000;
+}
+
+#footerp a:hover {
+ text-decoration:none;
+ font-size: 11px;
+ color: #f0e;
+}
#messagePane {
top:50px;
@@ -439,12 +1106,10 @@ border:1px solid blue;
-moz-border-radius-bottomleft:5px;
-moz-border-radius-bottomright:5px;
border-right:2px solid #c8cbce;
- border-bottom:2px solid #c8cbce;
-
- box-shadow: 3px 4px 4px #c8cbce;
- -webkit-box-shadow: 3px 4px 4px #c8cbce;
- -moz-box-shadow: 3px 3px 4px #c8cbce;
- filter: progid:DXImageTransform.Microsoft.dropShadow(color=#c8cbce, offX=3, offY=4, positive=true);
+ border-bottom:2px solid #c8cbce;
+ box-shadow: 3px 4px 2px #c8cbce;
+ -webkit-box-shadow: 3px 4px 2px #c8cbce;
+ -moz-box-shadow: 3px 3px 2px #c8cbce;
text-overflow:ellipsis;
/* opacity:0.87; */
z-index:18;
@@ -697,34 +1362,6 @@ left:0;
.invisible { display: none !important; }
- /* Hover menu shit */
-
- .trigger ul.menu
- {
- display: none;
- position: absolute;
- margin: 0;
- padding: .4em;
- list-style: none;
- }
- .trigger ul.menu li
- {
- padding: .1em .5em;
- }
- .trigger ul.menu li a
- {
- display: block;
- }
- .trigger:hover
- {
- background: transparent url(hover_menu_sample_glass_panel_body_selected.png) no-repeat center;
- }
- .trigger:hover ul.menu
- {
- display: block;
-width:60px;
-position:absolute;
- }
/* profile shit */
body.profile {
@@ -1032,7 +1669,7 @@ text-overflow: ellipsis-word;
margin-left:3px;
line-height:15px;
-border-top:1px solid #ccc;
+
z-index:4;
line-height:20px;
diff --git a/static/css/header.css b/static/css/header.css
index 9a80830..2466b22 100755
--- a/static/css/header.css
+++ b/static/css/header.css
@@ -1,3 +1,58 @@
+/* reset.css
+ From http://meyerweb.com/eric/tools/css/reset/
+ v1.0 | 20080212 */
+
+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, font, 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 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
.white a:hover {
@@ -520,13 +575,16 @@ width:100;
div.msgDiv:hover {
cursor: pointer;
-background-image:url("/static/img/thumbs/smallheart.gif");
-
+background-image:url("/static/img/thumbs/stripes.gif");
+background-position:center;
+background-attachment:fixed;
}
.msgDiv.favorite{
cursor: pointer;
-background-image:url("/static/img/thumbs/grheart.gif");
+background-image:url("/static/img/thumbs/stripes.gif");
+background-position:center;
+background-attachment:fixed;
}
.content{background-color:white;}
.nick{background-color:white;margin-right:3px;}
diff --git a/static/css/index.css b/static/css/index.css
index 05a4545..2e20351 100644
--- a/static/css/index.css
+++ b/static/css/index.css
@@ -1,3 +1,58 @@
+/* reset.css
+ From http://meyerweb.com/eric/tools/css/reset/
+ v1.0 | 20080212 */
+
+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, font, 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 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
body {
background:#f0f9ff url(/static/img/fade-blue.png) top center repeat-x;
@@ -81,11 +136,9 @@ z-index:2;
width: 144px;
text-decoration: none;
font-weight: bold;
- background: url(images/button.gif) no-repeat center center;
}
.menu2 li em {
font-weight: normal;
- background: url(images/hover.png) no-repeat;
width: 180px;
height: 45px;
position: absolute;
@@ -291,7 +344,6 @@ height:0px;
position:relative;
z-index:-1;
//See the "style-pack" below for image
- background:url(images/loading.gif) no-repeat 50% 50%;
}
#slider img {
position:absolute;
@@ -299,3 +351,81 @@ z-index:-1;
left:0px;
display:none;
}
+/*
+ * jQuery Nivo Slider v1.9
+ * http://nivo.dev7studios.com
+ *
+ * Copyright 2010, Gilbert Pellegrom
+ * Free to use and abuse under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * March 2010
+ */
+
+
+/* The Nivo Slider styles */
+.nivoSlider {
+ position:relative;
+}
+.nivoSlider img {
+ position:absolute;
+ top:0px;
+ left:0px;
+}
+/* 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:60;
+ display:none;
+}
+/* The slices in the Slider */
+.nivo-slice {
+ display:block;
+ position:absolute;
+ z-index:50;
+ height:100%;
+}
+/* Caption styles */
+.nivo-caption {
+ position:absolute;
+ left:0px;
+ bottom:0px;
+ background:#000;
+ color:#fff;
+ opacity:0.8; /* Overridden by captionOpacity setting */
+ width:100%;
+ z-index:89;
+}
+.nivo-caption p {
+ padding:5px;
+ margin:0;
+}
+/* Direction nav styles (e.g. Next & Prev) */
+.nivo-directionNav a {
+ position:absolute;
+ top:45%;
+ z-index:99;
+ cursor:pointer;
+}
+.nivo-prevNav {
+ left:0px;
+}
+.nivo-nextNav {
+ right:0px;
+}
+/* Control nav styles (e.g. 1,2,3...) */
+.nivo-controlNav a {
+ position:relative;
+ z-index:99;
+ cursor:pointer;
+}
+.nivo-controlNav a.active {
+ font-weight:bold;
+} \ No newline at end of file
diff --git a/static/css/pages.css b/static/css/pages.css
index 8a050b9..db5a056 100644
--- a/static/css/pages.css
+++ b/static/css/pages.css
@@ -1,4 +1,61 @@
- #hugescreen{
+/* reset.css
+ From http://meyerweb.com/eric/tools/css/reset/
+ v1.0 | 20080212 */
+
+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, font, 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 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+
+ #hugescreen{
position:fixed;
left:1700;
top:150;
@@ -17,7 +74,7 @@ left:290;top:353;
}
-a:active {
+a {
text-decoration: none;
color: #000;
}
@@ -118,3 +175,145 @@ background-attachment:fixed;
}
+
+/* CSS Document */
+
+
+#content {
+ font-family: Arial, Helvetica, sans-serif;
+ background-color:#fff;
+ background-repeat:repeat-x;
+ background-position:1 10;
+background-attachment:fixed;
+ margin: 0;
+
+
+}
+
+f1 { background-color:#000000;
+ font: 12px "Microsoft Sans Serif";
+ color:#FFFFFF;
+
+}
+
+ul {
+
+ margin: 4px;
+ padding: 15px;
+
+}
+
+#boxshadow {
+ box-shadow:-10px 5px #000;
+ -webkit-box-shadow:-10px 5px #000;
+ -moz-box-shadow: -10px 5px #000;
+
+}
+
+.divDragTitle {
+ position: absolute;
+ height: 24px;
+padding:0;
+ background-color:#fff;
+background-image:url(/static/img/upload.png);
+ border:1px solid #999;
+ cursor:move;
+ box-shadow:0px 0px 10px #100;
+ -webkit-box-shadow:0px 0px 10px #100;
+ -moz-box-shadow: 0px 3px 10px #100;
+
+}
+
+.divDragTitle table {
+ border-spacing:0px; width:100%;
+
+}
+
+.divDragTitle table tr td {
+ font-family:Arial,Helvetica,sans-serif;
+ padding-left:5px;
+ text-shadow: 1px 1px 1px #333;
+ font-size:13;
+
+ color: #fff;
+font-weight:bold;
+ color:#FFFFFF;
+
+}
+
+.divDragContent {
+ position: absolute;
+ background-color:#FFFFFF;
+ padding:0px; margin:0px;
+ border:1px solid #999;
+ display:block;
+margin-top:6;
+ cursor:default;
+ box-shadow:0px 0px 10px #100;
+ -webkit-box-shadow:0px 0px 10px #100;
+ -moz-box-shadow: 0px 0px 10px #100;
+ opacity: 0.923;
+
+
+
+}
+
+.divTitleButton {
+ border:0px;
+ padding: 1px;
+ cursor:default;
+}
+
+/* gallery styling */
+
+#jgal {
+ list-style:none;
+ width: 100px;
+}
+
+#jgal li {
+ opacity: .5;
+ display: block;
+ position:relative;
+ width: 40px;
+ height: 40px;
+ background-position: 50% 45%;
+ cursor: pointer;
+ border: 1px solid #fff;
+ outline: 1px solid #ddd;
+ margin-right: 20px;
+ margin-bottom: 14px;
+
+}
+
+#content h1{
+font-size:14;
+text-align:left;
+margin-left:10;
+letter-spacing:-0.5;
+color:#000;line-height:0.5;
+ text-shadow: 1px 1px 1px #fff;
+font-weight:bold;
+}
+#content h2{
+font-size:12;
+text-align:left;
+margin-left:22;
+margin-top:6;
+
+letter-spacing:-0.5;
+color:#000;
+font-weight:normal;
+ text-shadow: 1px 1px 1px #fff;
+
+}
+#content a {
+color:#333;
+font-size:14;
+font-weight:bold;
+}
+#content a:hover {
+color:#f0e;
+font-weight:bold;
+ text-shadow: 1px 1px 0.5px #fff;
+} \ No newline at end of file
diff --git a/static/css/reset.css b/static/css/reset.css
deleted file mode 100755
index 37522ab..0000000
--- a/static/css/reset.css
+++ /dev/null
@@ -1,55 +0,0 @@
-/* reset.css
- From http://meyerweb.com/eric/tools/css/reset/
- v1.0 | 20080212 */
-
-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, font, 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 {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- font-size: 100%;
- vertical-align: baseline;
- background: transparent;
- font-family: Arial, Helvetica, sans-serif;
-}
-body {
- line-height: 1;
-}
-ol, ul {
- list-style: none;
-}
-blockquote, q {
- quotes: none;
-}
-blockquote:before, blockquote:after,
-q:before, q:after {
- content: '';
- content: none;
-}
-
-/* remember to define focus styles! */
-:focus {
- outline: 0;
-}
-
-/* remember to highlight inserts somehow! */
-ins {
- text-decoration: none;
-}
-del {
- text-decoration: line-through;
-}
-
-/* tables still need 'cellspacing="0"' in the markup */
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
diff --git a/static/css/top.css b/static/css/top.css
index 184edd0..9251ff9 100644
--- a/static/css/top.css
+++ b/static/css/top.css
@@ -1,3 +1,58 @@
+/* reset.css
+ From http://meyerweb.com/eric/tools/css/reset/
+ v1.0 | 20080212 */
+
+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, font, 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 {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
diff --git a/static/img/thumbs/wdheart.gif b/static/img/thumbs/wdheart.gif
new file mode 100644
index 0000000..38cebb0
--- /dev/null
+++ b/static/img/thumbs/wdheart.gif
Binary files differ
diff --git a/static/img/thumbs/wdheartover.gif b/static/img/thumbs/wdheartover.gif
new file mode 100644
index 0000000..23f76a0
--- /dev/null
+++ b/static/img/thumbs/wdheartover.gif
Binary files differ
diff --git a/static/index.html b/static/index.html
index 720f7e3..479355f 100644
--- a/static/index.html
+++ b/static/index.html
@@ -5,9 +5,7 @@
<META NAME="keywords" CONTENT="dump.fm, image chat, realtime, internet 3.0, dump, dump fm, image dump, pictures, image links, image board">
<META NAME="description" CONTENT="Talk with pictures!">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
- <script type="text/javascript" src="/static/js/sha1.js"></script>
<script type="text/javascript" src="/static/js/home.js"></script>
- <link rel="stylesheet" href="static/css/top.css" type="text/css" media="screen" />
<link rel="shortcut icon" href="/static/favicon.ico">
<script src="/static/js/loopedslider.js" type="text/javascript" charset="utf-8"></script>
<script>
@@ -37,18 +35,232 @@ jQuery(window).load(function() {
});
});
</script>
+<style>
+
+
+body{margin:0px;
+background-color:#fff;
+ font-family:Arial, Helvetica, sans-serif; background:#f0f9ff url(/static/img/fade-blue.png) top center repeat-x;
+}
+A:link {text-decoration: none}
+A:visited {text-decoration: none}
+A:active {text-decoration: none}
+#rapper{
+width:800px;
+ margin: 0 auto 0 auto;
+
+background-position:top center;
+ background-repeat:no-repeat;
+ box-shadow: 0 0 10px #000;
+ -webkit-box-shadow: 0 0 10px #000;
+ -moz-box-shadow: 0 0 10px #000;
+}
+#toplogo{
+top:0px;
+width:800px;
+background-image:url(/static/img/blue2fade.png);
+}
+#bottomcontainer{
+width:800px;
+
+}
+#signin{
+background-color:#eff5fb;
+float:right;
+width:201px;
+height:225px;
+top:0px;
+padding:15px;
+padding-top:10px;
+font-size:10px;
+text-indent:5px;
+border:1px solid #000;border-right:0px solid #000;
+
+}
+#membertxt{
+background-color:#fff;
+padding:5px;
+border:1px solid black;
+margin-top:-22px;
+z-index:5;
+width:100;
+}
+
+#wtftxt{
+background-color:#fff;
+padding:5px;
+padding-left:15px;
+padding-right:15px;
+font-size:24px;
+border:1px solid black;
+margin-top:-56px;
+z-index:5;
+float:left;
+background-image:url(/static/img/ylgrad.png);
+}
+#previewdump{
+background-color:#fff;
+padding:5px;
+padding-left:15px;
+padding-right:15px;
+font-size:16px;
+border:1px solid #ccc;
+margin-top:-300px;
+z-index:5;
+float:right;
+margin-right:-210px;
+ border-bottom-left-radius:5px;
+ border-bottom-right-radius:5px;
+ -webkit-border-bottom-left-radius:5px;
+ -webkit-border-bottom-right-radius:5px;
+ -moz-border-radius-bottomleft:5px;
+ -moz-border-radius-bottomright:5px;
+background-image:url(/static/img/grgrad.png);
+}
+#previewdump a:hover{
+color:#000000;
+}
+input {
+ height:40px;
+ width:190px;
+float:right;
+padding-left:2px;
+ border:0px;
+border:1px solid #000;
+ margin:5px;
+ color:#000;z-index:20;
+ font-size:20px;
+
+}
+.no-cursor { cursor: none; }
+.invisible { display: none !important; }
+#cursor-big { position: absolute; z-index: 1000; }
+
+label {
+ display:inline-block;
+ font-size: 13px;
+ color: #222;
+float:right;
+margin-bottom:4px;
+}
+#signin-submit {
+ display:inline-block;
+
+ height:33px;float:left;
+ font-size:20px;
+width:190px;
+ font-weight:bold;
+ word-spacing:7;
+ text-align:center;
+ z-index:100;
+ font-size:16px;
+ color:#000;
+float:right;
+border:1px solid #000;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+
+z-index:20;
+}
+#remember{
+float:right;padding-top:5px;
+top:0px;display:block;
+margin-right:5px;
+}
+#remember a{text-decoration:none;font-size:11px;float:right;}
+#remembermeInput {
+ width: 15px;
+ height: 15px;
+ margin: 1px;
+}
+#wtf{
+float:left;
+width:538px;
+position:absolute;
+border:1px solid #000;
+border-left:0px solid #000;
+padding:15px;
+height:220px;
+background-color:#eff5fb;
+}
+#toptxt{
+padding:10px;
+text-align:center;
+}
+#lilflag{
+background-image:url(/static/img/lilflag.png);
+width: 173px; height: 59px;
+top:15px;
+padding-left:20px;
+position:absolute;
+color:#fff;
+padding-top:1px;
+text-align:left;
+word-spacing:8px;padding-right:10px;
+font-size:19px;
+margin-left:-13px;text-decoration:none;
+}
+#lilflag a:link {
+text-decoration:none;
+}
+#footer{
+padding-bottom:5px;
+padding-top:15px;
+text-align: center;
+color:#000;
+font-size:11px;
+word-spacing:30px;
+ margin: 0 auto 0 auto;
+background-color:#eff5fb;
+margin-top:250px;
+width:798px;
+}
+#bottomrow img{
+background-image:url(/static/img/grgrad.png);
+ border-radius: 15px;
+border:5px solid #ccc;
+padding:5px;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+}
+#footer a{color:#000;text-decoration:none;}
+
+
+
+ /*
+ * Required
+ */
+ .container { margin-top:8px;border:01px solid #666;width:538px; height:205px; overflow:hidden; position:relative; cursor:pointer; }
+ .slides { position:absolute; top:0; left:0; }
+ .slides div { position:absolute; top:0; width:538px; display:none; }
+ /*
+ * Optional
+ */
+
+ blockquote, q { quotes: none; }
+ :focus { outline: 0; }
+ ins { text-decoration: none; }
+ del { text-decoration: line-through; }
+ table { border-collapse: collapse; border-spacing: 0; }
+ #loopedSlider {width:610px; position:relative; clear:both; }
+ ul.pagination { list-style-type:none; margin:0; padding:0; margin:9px auto; width:132px; }
+ ul.pagination li { float:left; margin:0 5px;display:none; }
+ ul.pagination a { display:block; width:12px; padding-top:12px; height:0; overflow:hidden; background-image:url(/static/img/pagination.png); background-position:0 0; background-repeat:no-repeat;}
+
+
+</style>
</head>
<body>
<div id="rapper">
<div id="toplogo">
-<img style="visibility:hidden;width:0px;height:0px;"/><style type='text/css'>
-
-</style>
-<a class="img_roll" href="/register"></a>
+<img src="/static/img/dumppixellarge.png">
+<a href="/static/slowthgoth.html">
<div id="lilflag">
HOME OF THE SLOTHGOTH!!!!!
</div>
+</a>
</div>
<div id="bottomcontainer">
diff --git a/static/js/home.js b/static/js/home.js
index 072617a..db2d428 100755
--- a/static/js/home.js
+++ b/static/js/home.js
@@ -198,4 +198,336 @@ function MM_swapImage() { //v3.0
if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
}
}
+// sha1.js
+
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS 180-1
+ * Version 2.2 Copyright Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); }
+function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); }
+function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); }
+function hex_hmac_sha1(k, d)
+ { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); }
+function b64_hmac_sha1(k, d)
+ { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); }
+function any_hmac_sha1(k, d, e)
+ { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA1 of a raw string
+ */
+function rstr_sha1(s)
+{
+ return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8));
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data (raw strings)
+ */
+function rstr_hmac_sha1(key, data)
+{
+ var bkey = rstr2binb(key);
+ if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8);
+ return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160));
+}
+
+/*
+ * Convert a raw string to a hex string
+ */
+function rstr2hex(input)
+{
+ try { hexcase } catch(e) { hexcase=0; }
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var output = "";
+ var x;
+ for(var i = 0; i < input.length; i++)
+ {
+ x = input.charCodeAt(i);
+ output += hex_tab.charAt((x >>> 4) & 0x0F)
+ + hex_tab.charAt( x & 0x0F);
+ }
+ return output;
+}
+
+/*
+ * Convert a raw string to a base-64 string
+ */
+function rstr2b64(input)
+{
+ try { b64pad } catch(e) { b64pad=''; }
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var output = "";
+ var len = input.length;
+ for(var i = 0; i < len; i += 3)
+ {
+ var triplet = (input.charCodeAt(i) << 16)
+ | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0)
+ | (i + 2 < len ? input.charCodeAt(i+2) : 0);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > input.length * 8) output += b64pad;
+ else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F);
+ }
+ }
+ return output;
+}
+
+/*
+ * Convert a raw string to an arbitrary string encoding
+ */
+function rstr2any(input, encoding)
+{
+ var divisor = encoding.length;
+ var remainders = Array();
+ var i, q, x, quotient;
+
+ /* Convert to an array of 16-bit big-endian values, forming the dividend */
+ var dividend = Array(Math.ceil(input.length / 2));
+ for(i = 0; i < dividend.length; i++)
+ {
+ dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1);
+ }
+
+ /*
+ * Repeatedly perform a long division. The binary array forms the dividend,
+ * the length of the encoding is the divisor. Once computed, the quotient
+ * forms the dividend for the next step. We stop when the dividend is zero.
+ * All remainders are stored for later use.
+ */
+ while(dividend.length > 0)
+ {
+ quotient = Array();
+ x = 0;
+ for(i = 0; i < dividend.length; i++)
+ {
+ x = (x << 16) + dividend[i];
+ q = Math.floor(x / divisor);
+ x -= q * divisor;
+ if(quotient.length > 0 || q > 0)
+ quotient[quotient.length] = q;
+ }
+ remainders[remainders.length] = x;
+ dividend = quotient;
+ }
+
+ /* Convert the remainders to the output string */
+ var output = "";
+ for(i = remainders.length - 1; i >= 0; i--)
+ output += encoding.charAt(remainders[i]);
+
+ /* Append leading zero equivalents */
+ var full_length = Math.ceil(input.length * 8 /
+ (Math.log(encoding.length) / Math.log(2)))
+ for(i = output.length; i < full_length; i++)
+ output = encoding[0] + output;
+
+ return output;
+}
+
+/*
+ * Encode a string as utf-8.
+ * For efficiency, this assumes the input is valid utf-16.
+ */
+function str2rstr_utf8(input)
+{
+ var output = "";
+ var i = -1;
+ var x, y;
+
+ while(++i < input.length)
+ {
+ /* Decode utf-16 surrogate pairs */
+ x = input.charCodeAt(i);
+ y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;
+ if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF)
+ {
+ x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
+ i++;
+ }
+
+ /* Encode output as utf-8 */
+ if(x <= 0x7F)
+ output += String.fromCharCode(x);
+ else if(x <= 0x7FF)
+ output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F),
+ 0x80 | ( x & 0x3F));
+ else if(x <= 0xFFFF)
+ output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F),
+ 0x80 | ((x >>> 6 ) & 0x3F),
+ 0x80 | ( x & 0x3F));
+ else if(x <= 0x1FFFFF)
+ output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07),
+ 0x80 | ((x >>> 12) & 0x3F),
+ 0x80 | ((x >>> 6 ) & 0x3F),
+ 0x80 | ( x & 0x3F));
+ }
+ return output;
+}
+
+/*
+ * Encode a string as utf-16
+ */
+function str2rstr_utf16le(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length; i++)
+ output += String.fromCharCode( input.charCodeAt(i) & 0xFF,
+ (input.charCodeAt(i) >>> 8) & 0xFF);
+ return output;
+}
+
+function str2rstr_utf16be(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length; i++)
+ output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF,
+ input.charCodeAt(i) & 0xFF);
+ return output;
+}
+
+/*
+ * Convert a raw string to an array of big-endian words
+ * Characters >255 have their high-byte silently ignored.
+ */
+function rstr2binb(input)
+{
+ var output = Array(input.length >> 2);
+ for(var i = 0; i < output.length; i++)
+ output[i] = 0;
+ for(var i = 0; i < input.length * 8; i += 8)
+ output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
+ return output;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2rstr(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length * 32; i += 8)
+ output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF);
+ return output;
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function binb_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = bit_rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
diff --git a/static/js/pichat.js b/static/js/pichat.js
index a236ba0..031ac29 100644
--- a/static/js/pichat.js
+++ b/static/js/pichat.js
@@ -3,6 +3,89 @@ var PendingMessages = {}
var MessageContentCache = {}
var RawFavs = {}
+var InvalidDomains = [
+ "http://13gb.com",
+ "http://69.42.73.10",
+ "http://amitkulkarni.info",
+ "http://catcatcat.com",
+ "http://celebskin.com",
+ "http://current.com",
+ "http://files.shroomery.org",
+ "http://guides.macrumors.com",
+ "http://henshin.250x.com",
+ "http://i.pbase.com",
+ "http://images.nintendolife.com",
+ "http://img.bettersoft.de",
+ "http://izismile.com",
+ "http://izismile.com",
+ "http://izismile.com/img",
+ "http://mytextgraphics.com",
+ "http://nexus404.com",
+ "http://nintendolife.com",
+ "http://nofatclips.com",
+ "http://portfolio.deeperstudy.com",
+ "http://ru.fishki.net",
+ "http://ski.far.ru",
+ "http://tripod.com",
+ "http://uallknow.com",
+ "http://victoryaworld.com",
+ "http://images.4chan.org",
+ "http://www.4chan.org",
+ "http://www.angelfire.com",
+ "http://www.animation-central.com",
+ "http://www.arrested.com",
+ "http://www.b3tards.com",
+ "http://www.bloody-disgusting.com",
+ "http://www.commenthaven.com",
+ "http://www.coolnotions.com",
+ "http://www.creepygif.com",
+ "http://www.dailymakeover.com",
+ "http://www.fortunecity.com",
+ "http://www.gifbin.com",
+ "http://www.goatse.fr",
+ "http://www.hail-to-the-thief.org",
+ "http://www.knowledgebase-script.com",
+ "http://www.markagame.ru",
+ "http://www.masternewmedia.org",
+ "http://www.mortalkombatonline.com",
+ "http://www.mymodernmagic.com",
+ "http://www.mystkittsdivebuddy.com",
+ "http://www.nudecelebritieshentai.com",
+ "http://www.oldtimestrongman.com",
+ "http://www.popularpages.net",
+ "http://www.retrojunk.com",
+ "http://www.schm032.com",
+ "http://www.sevenoaksart.co.uk",
+ "http://www.suicidekiss.com",
+ "http://www.thecinemasource.com",
+ "http://www.veryboy.fr",
+ "http://www.vintagecomputing.com",
+ "http://www.virtuallandmedia.com",
+ "http://www.whudat.com",
+ "http://www.willrich.supanet.com",
+ "http://www.ysmarko.com",
+ "http://www.3d-onthelevel.com",
+ "http://www.heathersanimations.com",
+ "http://fortunecity.com",
+ "http://geneology2.com",
+ "http://www.geneology2.com",
+ "http://img.waffleimages.com",
+ "http://www.worldofstock.com",
+ "http://aphrodite.cooltext.com",
+ "http://www.onemetal.com",
+ "http://static.funnyjunk.com",
+ "http://www.whimsical-wits.com",
+ "http://madsenworld.dk",
+ "http://www.oafe.net",
+ "http://www.mrbalihai.com",
+ "http://www.digyourowngrave.com",
+ "http://tripod.com",
+ "http://www.kaitaia.com",
+ "http://carsdriveingallery.com",
+ "http://xxxspacegirls.us",
+ "http://www.newlog.com.ar"
+];
+
var MaxImagePosts = 30
// todo: preload these. also, look into image sprites (no go on animating their sizes tho)
@@ -199,7 +282,7 @@ function buildMessageDiv(msg, isLoading) {
var loadingClass = isLoading ? ' loading' : '';
var containsImageClass = LastMsgContainsImage ? ' contains-image' : '';
return '<div class="msgDiv dump ' + loadingClass + containsImageClass + '" ' + msgId + '>'
- + '<span class="nick"><b><a href="http://dump.fm/' + nick + ' " target="_blank">' + nick + '</a></b>'
+ + '<span class="nick"><b><a href="http://dump.fm/' + nick + ' ">' + nick + '</a></b>'
+ ' <img src="'+Imgs.chatThumbDot+'" class="chat-thumb" onclick="Tag.favorite(this)"> '
+ '</span>'
+ '<span class="content">' + buildMsgContent(msg.content) + '</span>'
@@ -1050,3 +1133,336 @@ $('.msgDiv').live('click', function(e) {
Tag.favorite(button);
return false;
});
+
+// sha1.js
+
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS 180-1
+ * Version 2.2 Copyright Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); }
+function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); }
+function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); }
+function hex_hmac_sha1(k, d)
+ { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); }
+function b64_hmac_sha1(k, d)
+ { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); }
+function any_hmac_sha1(k, d, e)
+ { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA1 of a raw string
+ */
+function rstr_sha1(s)
+{
+ return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8));
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data (raw strings)
+ */
+function rstr_hmac_sha1(key, data)
+{
+ var bkey = rstr2binb(key);
+ if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8);
+ return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160));
+}
+
+/*
+ * Convert a raw string to a hex string
+ */
+function rstr2hex(input)
+{
+ try { hexcase } catch(e) { hexcase=0; }
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var output = "";
+ var x;
+ for(var i = 0; i < input.length; i++)
+ {
+ x = input.charCodeAt(i);
+ output += hex_tab.charAt((x >>> 4) & 0x0F)
+ + hex_tab.charAt( x & 0x0F);
+ }
+ return output;
+}
+
+/*
+ * Convert a raw string to a base-64 string
+ */
+function rstr2b64(input)
+{
+ try { b64pad } catch(e) { b64pad=''; }
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var output = "";
+ var len = input.length;
+ for(var i = 0; i < len; i += 3)
+ {
+ var triplet = (input.charCodeAt(i) << 16)
+ | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0)
+ | (i + 2 < len ? input.charCodeAt(i+2) : 0);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > input.length * 8) output += b64pad;
+ else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F);
+ }
+ }
+ return output;
+}
+
+/*
+ * Convert a raw string to an arbitrary string encoding
+ */
+function rstr2any(input, encoding)
+{
+ var divisor = encoding.length;
+ var remainders = Array();
+ var i, q, x, quotient;
+
+ /* Convert to an array of 16-bit big-endian values, forming the dividend */
+ var dividend = Array(Math.ceil(input.length / 2));
+ for(i = 0; i < dividend.length; i++)
+ {
+ dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1);
+ }
+
+ /*
+ * Repeatedly perform a long division. The binary array forms the dividend,
+ * the length of the encoding is the divisor. Once computed, the quotient
+ * forms the dividend for the next step. We stop when the dividend is zero.
+ * All remainders are stored for later use.
+ */
+ while(dividend.length > 0)
+ {
+ quotient = Array();
+ x = 0;
+ for(i = 0; i < dividend.length; i++)
+ {
+ x = (x << 16) + dividend[i];
+ q = Math.floor(x / divisor);
+ x -= q * divisor;
+ if(quotient.length > 0 || q > 0)
+ quotient[quotient.length] = q;
+ }
+ remainders[remainders.length] = x;
+ dividend = quotient;
+ }
+
+ /* Convert the remainders to the output string */
+ var output = "";
+ for(i = remainders.length - 1; i >= 0; i--)
+ output += encoding.charAt(remainders[i]);
+
+ /* Append leading zero equivalents */
+ var full_length = Math.ceil(input.length * 8 /
+ (Math.log(encoding.length) / Math.log(2)))
+ for(i = output.length; i < full_length; i++)
+ output = encoding[0] + output;
+
+ return output;
+}
+
+/*
+ * Encode a string as utf-8.
+ * For efficiency, this assumes the input is valid utf-16.
+ */
+function str2rstr_utf8(input)
+{
+ var output = "";
+ var i = -1;
+ var x, y;
+
+ while(++i < input.length)
+ {
+ /* Decode utf-16 surrogate pairs */
+ x = input.charCodeAt(i);
+ y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;
+ if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF)
+ {
+ x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
+ i++;
+ }
+
+ /* Encode output as utf-8 */
+ if(x <= 0x7F)
+ output += String.fromCharCode(x);
+ else if(x <= 0x7FF)
+ output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F),
+ 0x80 | ( x & 0x3F));
+ else if(x <= 0xFFFF)
+ output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F),
+ 0x80 | ((x >>> 6 ) & 0x3F),
+ 0x80 | ( x & 0x3F));
+ else if(x <= 0x1FFFFF)
+ output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07),
+ 0x80 | ((x >>> 12) & 0x3F),
+ 0x80 | ((x >>> 6 ) & 0x3F),
+ 0x80 | ( x & 0x3F));
+ }
+ return output;
+}
+
+/*
+ * Encode a string as utf-16
+ */
+function str2rstr_utf16le(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length; i++)
+ output += String.fromCharCode( input.charCodeAt(i) & 0xFF,
+ (input.charCodeAt(i) >>> 8) & 0xFF);
+ return output;
+}
+
+function str2rstr_utf16be(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length; i++)
+ output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF,
+ input.charCodeAt(i) & 0xFF);
+ return output;
+}
+
+/*
+ * Convert a raw string to an array of big-endian words
+ * Characters >255 have their high-byte silently ignored.
+ */
+function rstr2binb(input)
+{
+ var output = Array(input.length >> 2);
+ for(var i = 0; i < output.length; i++)
+ output[i] = 0;
+ for(var i = 0; i < input.length * 8; i += 8)
+ output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
+ return output;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2rstr(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length * 32; i += 8)
+ output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF);
+ return output;
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function binb_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = bit_rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
diff --git a/static/js/register.js b/static/js/register.js
index 16cc8b0..ebdc095 100755
--- a/static/js/register.js
+++ b/static/js/register.js
@@ -65,4 +65,336 @@ function submitRegistration() {
function initRegister() {
$('#submit').click(submitRegistration);
-} \ No newline at end of file
+}
+// sha1.js
+
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS 180-1
+ * Version 2.2 Copyright Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+/*
+ * Configurable variables. You may need to tweak these to be compatible with
+ * the server-side, but the defaults work in most cases.
+ */
+var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
+var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
+
+/*
+ * These are the functions you'll usually want to call
+ * They take string arguments and return either hex or base-64 encoded strings
+ */
+function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); }
+function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); }
+function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); }
+function hex_hmac_sha1(k, d)
+ { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); }
+function b64_hmac_sha1(k, d)
+ { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); }
+function any_hmac_sha1(k, d, e)
+ { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); }
+
+/*
+ * Perform a simple self-test to see if the VM is working
+ */
+function sha1_vm_test()
+{
+ return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d";
+}
+
+/*
+ * Calculate the SHA1 of a raw string
+ */
+function rstr_sha1(s)
+{
+ return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8));
+}
+
+/*
+ * Calculate the HMAC-SHA1 of a key and some data (raw strings)
+ */
+function rstr_hmac_sha1(key, data)
+{
+ var bkey = rstr2binb(key);
+ if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8);
+
+ var ipad = Array(16), opad = Array(16);
+ for(var i = 0; i < 16; i++)
+ {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5C5C5C5C;
+ }
+
+ var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8);
+ return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160));
+}
+
+/*
+ * Convert a raw string to a hex string
+ */
+function rstr2hex(input)
+{
+ try { hexcase } catch(e) { hexcase=0; }
+ var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+ var output = "";
+ var x;
+ for(var i = 0; i < input.length; i++)
+ {
+ x = input.charCodeAt(i);
+ output += hex_tab.charAt((x >>> 4) & 0x0F)
+ + hex_tab.charAt( x & 0x0F);
+ }
+ return output;
+}
+
+/*
+ * Convert a raw string to a base-64 string
+ */
+function rstr2b64(input)
+{
+ try { b64pad } catch(e) { b64pad=''; }
+ var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ var output = "";
+ var len = input.length;
+ for(var i = 0; i < len; i += 3)
+ {
+ var triplet = (input.charCodeAt(i) << 16)
+ | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0)
+ | (i + 2 < len ? input.charCodeAt(i+2) : 0);
+ for(var j = 0; j < 4; j++)
+ {
+ if(i * 8 + j * 6 > input.length * 8) output += b64pad;
+ else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F);
+ }
+ }
+ return output;
+}
+
+/*
+ * Convert a raw string to an arbitrary string encoding
+ */
+function rstr2any(input, encoding)
+{
+ var divisor = encoding.length;
+ var remainders = Array();
+ var i, q, x, quotient;
+
+ /* Convert to an array of 16-bit big-endian values, forming the dividend */
+ var dividend = Array(Math.ceil(input.length / 2));
+ for(i = 0; i < dividend.length; i++)
+ {
+ dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1);
+ }
+
+ /*
+ * Repeatedly perform a long division. The binary array forms the dividend,
+ * the length of the encoding is the divisor. Once computed, the quotient
+ * forms the dividend for the next step. We stop when the dividend is zero.
+ * All remainders are stored for later use.
+ */
+ while(dividend.length > 0)
+ {
+ quotient = Array();
+ x = 0;
+ for(i = 0; i < dividend.length; i++)
+ {
+ x = (x << 16) + dividend[i];
+ q = Math.floor(x / divisor);
+ x -= q * divisor;
+ if(quotient.length > 0 || q > 0)
+ quotient[quotient.length] = q;
+ }
+ remainders[remainders.length] = x;
+ dividend = quotient;
+ }
+
+ /* Convert the remainders to the output string */
+ var output = "";
+ for(i = remainders.length - 1; i >= 0; i--)
+ output += encoding.charAt(remainders[i]);
+
+ /* Append leading zero equivalents */
+ var full_length = Math.ceil(input.length * 8 /
+ (Math.log(encoding.length) / Math.log(2)))
+ for(i = output.length; i < full_length; i++)
+ output = encoding[0] + output;
+
+ return output;
+}
+
+/*
+ * Encode a string as utf-8.
+ * For efficiency, this assumes the input is valid utf-16.
+ */
+function str2rstr_utf8(input)
+{
+ var output = "";
+ var i = -1;
+ var x, y;
+
+ while(++i < input.length)
+ {
+ /* Decode utf-16 surrogate pairs */
+ x = input.charCodeAt(i);
+ y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;
+ if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF)
+ {
+ x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
+ i++;
+ }
+
+ /* Encode output as utf-8 */
+ if(x <= 0x7F)
+ output += String.fromCharCode(x);
+ else if(x <= 0x7FF)
+ output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F),
+ 0x80 | ( x & 0x3F));
+ else if(x <= 0xFFFF)
+ output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F),
+ 0x80 | ((x >>> 6 ) & 0x3F),
+ 0x80 | ( x & 0x3F));
+ else if(x <= 0x1FFFFF)
+ output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07),
+ 0x80 | ((x >>> 12) & 0x3F),
+ 0x80 | ((x >>> 6 ) & 0x3F),
+ 0x80 | ( x & 0x3F));
+ }
+ return output;
+}
+
+/*
+ * Encode a string as utf-16
+ */
+function str2rstr_utf16le(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length; i++)
+ output += String.fromCharCode( input.charCodeAt(i) & 0xFF,
+ (input.charCodeAt(i) >>> 8) & 0xFF);
+ return output;
+}
+
+function str2rstr_utf16be(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length; i++)
+ output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF,
+ input.charCodeAt(i) & 0xFF);
+ return output;
+}
+
+/*
+ * Convert a raw string to an array of big-endian words
+ * Characters >255 have their high-byte silently ignored.
+ */
+function rstr2binb(input)
+{
+ var output = Array(input.length >> 2);
+ for(var i = 0; i < output.length; i++)
+ output[i] = 0;
+ for(var i = 0; i < input.length * 8; i += 8)
+ output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
+ return output;
+}
+
+/*
+ * Convert an array of big-endian words to a string
+ */
+function binb2rstr(input)
+{
+ var output = "";
+ for(var i = 0; i < input.length * 32; i += 8)
+ output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF);
+ return output;
+}
+
+/*
+ * Calculate the SHA-1 of an array of big-endian words, and a bit length
+ */
+function binb_sha1(x, len)
+{
+ /* append padding */
+ x[len >> 5] |= 0x80 << (24 - len % 32);
+ x[((len + 64 >> 9) << 4) + 15] = len;
+
+ var w = Array(80);
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+ var e = -1009589776;
+
+ for(var i = 0; i < x.length; i += 16)
+ {
+ var olda = a;
+ var oldb = b;
+ var oldc = c;
+ var oldd = d;
+ var olde = e;
+
+ for(var j = 0; j < 80; j++)
+ {
+ if(j < 16) w[j] = x[i + j];
+ else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
+ var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)),
+ safe_add(safe_add(e, w[j]), sha1_kt(j)));
+ e = d;
+ d = c;
+ c = bit_rol(b, 30);
+ b = a;
+ a = t;
+ }
+
+ a = safe_add(a, olda);
+ b = safe_add(b, oldb);
+ c = safe_add(c, oldc);
+ d = safe_add(d, oldd);
+ e = safe_add(e, olde);
+ }
+ return Array(a, b, c, d, e);
+
+}
+
+/*
+ * Perform the appropriate triplet combination function for the current
+ * iteration
+ */
+function sha1_ft(t, b, c, d)
+{
+ if(t < 20) return (b & c) | ((~b) & d);
+ if(t < 40) return b ^ c ^ d;
+ if(t < 60) return (b & c) | (b & d) | (c & d);
+ return b ^ c ^ d;
+}
+
+/*
+ * Determine the appropriate additive constant for the current iteration
+ */
+function sha1_kt(t)
+{
+ return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
+ (t < 60) ? -1894007588 : -899497514;
+}
+
+/*
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+ * to work around bugs in some JS interpreters.
+ */
+function safe_add(x, y)
+{
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+ * Bitwise rotate a 32-bit number to the left.
+ */
+function bit_rol(num, cnt)
+{
+ return (num << cnt) | (num >>> (32 - cnt));
+}
diff --git a/static/register.html b/static/register.html
index 18849e2..b6730a5 100644
--- a/static/register.html
+++ b/static/register.html
@@ -1,17 +1,13 @@
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
- <script type="text/javascript" src="/static/js/underscore-min.js"></script>
- <script type="text/javascript" src="/static/js/sha1.js"></script>
<script type="text/javascript" src="/static/js/register.js"></script>
<script>
$(document).ready(initRegister);
</script>
- <link rel="stylesheet" type="text/css" href="static/css/reset.css">
<link rel="stylesheet" type="text/css" href="static/css/index.css">
-
- <link rel="shortcut icon" href="static/favicon.ico">
+ <link rel="shortcut icon" href="static/favicon.ico">
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META NAME="keywords" CONTENT="dump.fm, image chat, realtime, internet 3.0, dump, dump fm, image dump, pictures, image links, image board">
<META NAME="description" CONTENT="Talk with pictures!">
<title>dump.fm - register</title></head>
diff --git a/template/about_us.st b/template/about_us.st
index 72f3b25..93d1408 100644
--- a/template/about_us.st
+++ b/template/about_us.st
@@ -1,7 +1,7 @@
<html>
<head>
<link href="/static/css/pages.css" rel="stylesheet" type="text/css" media="screen" />
- <link href="/static/css/win.css" rel="stylesheet" type="text/css" media="screen" />
+ <link href="/static/css/header.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="/static/js/win.js"></script>
<script type="text/javascript">
diff --git a/template/banner.st b/template/banner.st
index 8f8ffbe..02759c5 100644
--- a/template/banner.st
+++ b/template/banner.st
@@ -57,14 +57,15 @@ onblur="this.className = ''; resume_key_commands(); if (this.value == '') { this
$endif$
<div id="topic"></div>
+ <div id="dumplist">
$if(user_nick)$
- <div id="dumplist">
+
want a room in dump.fm? <a href="mailto:info@dump.fm">contact us!</a>$else$ let pictures do the talking $endif$ $if(isadmin)$
<a href="http://news.dump.fm">- news</a> - <a href="http://gossip.dump.fm">gossip</a> - <a href="http://art.dump.fm">art</a> - <a href="http://gif.dump.fm">gif</a> - <a href="http://design.dump.fm">design</a> - <a href="http://fashion.dump.fm">fashion</a>
- -<a href="http://vip.dump.fm/"> VIP </a>
+ -<a href="http://vip.dump.fm/"> VIP PIMP DEN (NO GIRLS ALLOWED) </a>
$endif$
</div>
$if(user_nick)$
diff --git a/template/browser.st b/template/browser.st
index 4ebcd1b..42f1990 100644
--- a/template/browser.st
+++ b/template/browser.st
@@ -3,6 +3,7 @@
<title>dump.fm | Image Search Beta</title>
$head()$
<link rel="stylesheet" type="text/css" href="/static/css/browser.css">
+ <link rel="stylesheet" type="text/css" href="/static/css/header.css">
<script type="text/javascript" src="/static/gritter/js/jquery.gritter.js"></script>
<link rel="stylesheet" type="text/css" href="/static/gritter/css/jquery.gritter.css" />
@@ -62,7 +63,7 @@ $endif$
</div>
</div>
-<div id="footerc">
+<div id="footerc" style="bottom:3px;">
<p>
$footer()$</p>
<p>
diff --git a/template/chat.st b/template/chat.st
index 851aaa1..9d0ae6c 100644
--- a/template/chat.st
+++ b/template/chat.st
@@ -20,12 +20,11 @@ $head()$
<title>$roomname$ dump.fm</title>
<META name="keywords" content="credit, mortgage, dating, hot girls, hot guys, debt solutions, get rich quick">
- <link rel="stylesheet" type="text/css" href="/static/css/dump.css">
- <script type="text/javascript" src="/static/js/invalid_domains.js"></script>
- <script type="text/javascript" src="/static/webcam/webcam.js"></script>
- <script type="text/javascript" src="/static/js/ajaxupload.js"></script>
+ <link rel="stylesheet" type="text/css" href="http://dump.fm/static/css/dump.css">
+ <script type="text/javascript" src="http://dump.fm/static/webcam/webcam.js"></script>
+ <script type="text/javascript" src="http://dump.fm/static/js/ajaxupload.js"></script>
$if(user_nick)$
- <script type="text/javascript" src="/json/$user_nick$/favorites"></script>
+ <script type="text/javascript" src="http://dump.fm/json/$user_nick$/favorites"></script>
$endif$
<script>
jQuery(document).ready(initChat);
diff --git a/template/head.st b/template/head.st
index 918dbc3..e6ce63a 100644
--- a/template/head.st
+++ b/template/head.st
@@ -4,9 +4,6 @@
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
<script type="text/javascript" src="/static/js/jquery-ui-1.8.effects.min.js"></script>
<script type="text/javascript" src="/static/js/pichat.js"></script>
-<script type="text/javascript" src="/static/js/sha1.js"></script>
-<link rel="stylesheet" type="text/css" href="/static/css/reset.css">
-<link rel="stylesheet" type="text/css" href="/static/css/header.css">
$if(!user_nick)$
<link href="/static/form_login/front.css" media="screen, projection" rel="stylesheet" type="text/css">
$endif$
diff --git a/template/help.st b/template/help.st
index 097e83e..3576d6f 100644
--- a/template/help.st
+++ b/template/help.st
@@ -1,7 +1,7 @@
<html>
<head>
<link href="/static/css/pages.css" rel="stylesheet" type="text/css" media="screen"/>
- <link href="/static/css/win.css" rel="stylesheet" type="text/css" media="screen"/>
+ <link href="/static/css/header.css" rel="stylesheet" type="text/css" media="screen"/>
<script type="text/javascript" src="/static/js/win.js"></script>
<script type="text/javascript">
diff --git a/template/nigga.st b/template/nigga.st
index 33affc4..76bb18c 100644
--- a/template/nigga.st
+++ b/template/nigga.st
@@ -8,25 +8,49 @@
<script>
jQuery(document).ready(initProfile);
</script>
+<style>
+
+
+
+
+
+#dashrapper{
+border:1px solid black;
+top:80px;
+padding:50px;
+height:800px;
+width:800px;
+position:absolute;
+margin-left:10%;
+}
+#dashuserlist{
+border:1px solid black;
+width:200px;
+height:400px;
+}
+
+</style>
</head>
<body>
$banner()$
<div id="content">
- <div id="messagetabs"></div>
- <div id="rapper">
- </div>
+
- <div id="messagePanep">
- <div id="userListp"><br> $if(is_home)$<br>$endif$
- <h2>
+ <div id="dashrapper">
+ <div id="dashuserlist"><br> $if(is_home)$<br>$endif$
+
$if(avatar)$
+ <div id="dashavatar">
<img id="avatarPic" src="$avatar$"/>
$else$<br><br>
<img id="avatarPic" src="/static/img/noinfo.png">
$endif$
-
- $nick$ </h2><br>
+ </div>
+ <h2>
+ $nick$
+
+ <br>
$if(score_ent)$
<h8>
fav score: $score$
@@ -52,14 +76,17 @@
<br> <h3>contact info</h3>
$if(contact)$
<br><div id="contact" class="linkify">$contact$</div>
+
$else$
<div><img id="contact" src="/static/img/noinfo.png"><br><br></div>
+
$endif$
<br><br><h3>bio</h3>
$if(bio)$
<br> <div id="bio" class="linkify">$bio$</div>
$else$
+
<div><img id="bio" src="/static/img/noinfo.png"><br><br></div>
$endif$
@@ -74,51 +101,13 @@
<br>
<a href="http://dump.fm/u/$nick$/favorites"><h7>$nick$'s <br>Favorite Pix</h7></a>
-
- <div id="date">
- <div type="text" id="datepicker"></div></div>
- </div>
+</div></div>
- <div id="favbox" style="display: hidden"></div>
- <div id="messageList">
-
- $if(dumps)$ <span class="content">
- $dumps:{ d | $profile_dump(dump=d)$ }$
-
-
-
- </span>
-
-
-
- $else$
- no dumps
- $endif$
- </div>
-
- <div id="msgInputDiv">
- <div id="msginputrapper">
-
- $if(prev)$
- <a href="/$nick$/$prev$"><input id="prevbutton" value="<- Prev"></a>
- $else$
-<input id="prevbutton">
- $endif$
-
- $if(next)$
- <a href="/$nick$/$next$"> <input id="nextbutton" value="Next ->"></a>
- $else$
- <input id="nextbutton" value="nomodumps">
- $endif$
-
-
-
- </div>
+
+
<div id="footerc">
$footer()$
- </div>
- </div>
- </div></div></div>
+
</body>
</html>
diff --git a/template/privacy.st b/template/privacy.st
index c53815c..ef225c8 100644
--- a/template/privacy.st
+++ b/template/privacy.st
@@ -1,7 +1,7 @@
<html>
<head>
<link href="/static/css/pages.css" rel="stylesheet" type="text/css" media="screen"/>
- <link href="/static/css/win.css" rel="stylesheet" type="text/css" media="screen"/>
+ <link href="/static/css/header.css" rel="stylesheet" type="text/css" media="screen"/>
<script type="text/javascript" src="/static/js/win.js"></script>
<script type="text/javascript" src="/static/jquery.em.js"></script>
diff --git a/template/terms.st b/template/terms.st
index 0880d7b..9ca6067 100644
--- a/template/terms.st
+++ b/template/terms.st
@@ -1,7 +1,7 @@
<html>
<head>
<link href="/static/css/pages.css" rel="stylesheet" type="text/css" media="screen"/>
- <link href="/static/css/win.css" rel="stylesheet" type="text/css" media="screen"/>
+ <link href="/static/css/header.css" rel="stylesheet" type="text/css" media="screen"/>
<script type="text/javascript" src="/static/js/win.js"></script>
<script type="text/javascript">